How to become a competent coder? - I was advised to cross post here.
-
[email protected]replied to [email protected] last edited by
Looks perfect to me!
Hell, resembles my first variation of the code back around the year 1999
-
[email protected]replied to [email protected] last edited by
The best way to learn is to just do it! When I'm starting out with something I generally have a few ideas of basic things I could do with it, generally that's making simple CRUD apps (when I started using Axum I made a simple API that returns json from a file directory as long as the directory is formatted as: /type/name. Then I went and made a website using vanilla js/html/CSS and made everything run using the backend).
This second project is great because there's always something else I could do like auth, like not doing a post and redirect to the same page for updates, like creating dynamic client & employee pages, like using an actual db instead of a script to make CSV files as a db. IMO, THIS is where you learn things.
-
[email protected]replied to [email protected] last edited by
sshhhh let the kid develop a bit of impostor syndrome first
-
[email protected]replied to [email protected] last edited by
I'm impressed!
Too lazy to test your version of the code, cuz I don't think I even need to. You understand the code from the start!
Wonderful! I love my π circles round...
-
[email protected]replied to [email protected] last edited by
Aside from what everyone else is saying, don't use dependencies that you don't have to. Particularly don't use big "frameworks". If you use any dependencies, use tiny, focused ones that do one thing. The more code there is underneath what you're writing, the more likely it will cause problems that you will internalize. I've seen it many times. Spring (Java), for instance, will do something not as advertised, and devs will think they're bad coders because they "can't write code that works as it's supposed to." Avoiding that vicious cycle will make you a better coder in the long run.
Also, when things aren't working with your dependencies, do google for fixes, but don't google too long. If you haven't got a solution after an hour of no progress, look at your dependencies' source code until you understand why and how to fix it.
-
[email protected]replied to [email protected] last edited by
And then cry when you land your first development job, knowing that you'll never get to build anything so clean and effective that will actually get implemented in the real world.
-
[email protected]replied to [email protected] last edited by
Proceed way past 26 if you want more accuracy, assuming the CPU can handle more accuracy (most likely these days)..
-
[email protected]replied to [email protected] last edited by
Sounds like you're just still in the same boat as op.
-
[email protected]replied to [email protected] last edited by
DO BEEP LOOP UNTIL BEEP = BOOP
-
[email protected]replied to [email protected] last edited by
i hate this joke.
yes, trial and error is part of the process, but that does not mean we are bumbling fools that don't know how or why things work. trial and error is part of any complex endeavour or learning new things.
when i started programming i struggled with getting stuff to compile, because i didn't know the language i was using well, i later struggled with getting my code to work on other machines because i didn't understood how to package it.
we absolutely get more competent, but we use complex tools to do complex stuff and we seldom have to produce the exact same thing twice, so of course we often find ourselves in somewhat uncharted territory.
-
[email protected]replied to [email protected] last edited by
I would also say participate in code reviews, analyze others code from your own perspective. Depending on the quality of course, you can pick up on new concepts or approaches that didn’t occur to you when writing on your own code
-
[email protected]replied to [email protected] last edited by
Trial and error has no direct connotation to bumbling fools. You’re projecting your own insecurities
-
[email protected]replied to [email protected] last edited by
that this does not make us fools is exactly what i wrote.
i am just tired of that "joke" that developers don't understand their own work. its neither funny nor does it help anyone.
-
[email protected]replied to [email protected] last edited by
-
[email protected]replied to [email protected] last edited by
When I first started out, I was working on things I found fun like a damage calculator for a game I was playing or a simple habit tracker that just incremented a number for a particular chore or task.
Eventually things got more and more complex until I did enough to impress the first company that hired me.
From what you wrote, it sounds like you're off to a great start already. Just keep at it!
-
[email protected]replied to [email protected] last edited by
If you want a headstart, I'd recommend looking into other kinds of languages, such as lisp, assembly, smalltalk and prolog. You will probably have classes on those in college (at least I did have mandatory ones), and it can take a while to wrap your head over such different programming styles.
And it also helps wonders to make you into a versatile programmer - since you would be vaguely familar with most of the different styles of languages there are, picking up a any new language will be a lot faster, since it will probably be similar to one of the above mentioned.
-
[email protected]replied to [email protected] last edited by
How did you determined that your coding skills are "absolute shit"?
If you plan to study CS having qualifications and personal projects and stuff, you're very likely already ahead of the curve; you already have the head-start you want.
In general,
- invest into what interests you or has use for you; code a tool you use or need, look at a project you use or you have interest in; personal investment drives you forward with interest and motivation
- smaller projects are easier to read and get into than larger projects
- [many if not most] public (same as private projects) may be in a bad or awful state, but you can still learn from them
- nothing is as good for learning as working on a project with a good mentor
- prefer official resources, tutorials and guidance over third parties, if available; they will more likely be more up-to-date and more likely better than the other way around
- studying computer science can teach the leap from coding to software engineering; mentoring can too
- experience, both amount and variance, drives all you do
- there's a lot of resources for many things to read and learn
You listed algorithms first, I think that's a well scoped, reachable goal, with many resources available. Increasing that scope, meaning also effort and risk of giving up, you could combine algorithms with a visualization, e.g. drawing on a HTML canvas. Now you have a well scoped project, where you visually see progress, and meet two of your learning goals of algo and web.
-
[email protected]replied to [email protected] last edited by
Work on your own projects and it will come naturally, it's the best way to thoroughly learn a language (probably JS in your case). Try to really understand the basics (like OOP), it's knowledge which will both translate to other languages and help you learn frameworks/libraries. Instead of relying solely on tutorials, try reading the documentation, it will give you a more thorough understanding (if it's good), also stack overflow isn't cheating, you can't always remember everything. Trust me, you are already way ahead of others if you plan to take CS.
-
[email protected]replied to [email protected] last edited by
Unironically this.
The entire IT world is held together with spit and sellotape.
-
[email protected]replied to [email protected] last edited by
Chill, hatred is too strong for this. Jokes are rooted in reality but that doesn’t mean that they describe the full reality.
I’ve been programming and tinkering with computing systems for a long time. Every time I start a new project with some new tech, I end up with 1000 tabs open in various mixtures of docs, AI, stackoverflow, reddit; and discord, slack; etc. hunting for answers or resolutions to similar situation to some particular nuanced problem I’m experiencing. It doesn’t mean that I’m an idiot just that I’m trying to do something that I haven’t done before.
It’s taken me many cycles to break myself out of the samsara loops of “I don’t know how to do this so I suck.” Imposter Syndrome is real but eventually we work through it to a healthy perspective of “I don’t know how to do this… yet, but I’m going to have to struggle through it to earn this knowledge.”