Magic isn’t real
Any sufficiently advanced technology is indistinguishable from magic.
Unsolicited advice for anyone seeking to learn computer science or software development in 2023.
Sadly…This time is no longer upon us. No more is it expected that VC-backed startups must scale to 1/3 of the planet before becoming profitable. We are approximately either almost exactly 3 Days - 5 1/2 Years from Chat-Gippity
doing the job of every 2nd or 3rd Web developer, along with UI/UX Designer, Data analyst, and Scrum Master 😉
Hey, didn’t you just say you started programming over again in 2021
Why yes. I did.
Why would you do that? If you have such a shitty outlook on the industry?
Great question, I’m so glad you asked…
Because I have a computer in prison, wtf else am I going to do I love it. If I had millions of dollars and never had to work again, I would undoubtedly be a FOSS dev.
Well whoop-dee-do… 🙄:
And wait a second.. Isn’t it pretentious to have a conversation with yourself like this in your own blog post?
You’re damn right it is..__ good call
My point here is that, in my opinion, as both unsolicited and completely speculative as it may be, this industry is no longer going to be a refuge for those who just want a cushy job, who were never really interested in CS or technology, to lie low at their huge corporate firm and collect a fat paycheck. I don’t think that I am alone in this opinion, in fact I think we are moving towards this being the accepted view at this point.
Says who? What do you know about ‘this industry’?
Damn I can’t sneak anything by you… Ok. I admit I pulled that out of.. Wait what did we say about talking to yourself in the blog post?
Jeez you have done way too much time in solitary.
Where I am going, and indeed the whole point of this post, like the title says, is to just learn everything. This is a post for those people who have asked me what they need to know or what language or framework they should learn. I am simply saying that it doesn’t matter (kinda).
Who in the *** would ask you for advice on anything?
I’ll let this one slide, because that is a damn good question. Who the hell would ask me for career advice?
One answer, as you might guess, is a lot of other currently, or formerly incarcerated people who are looking to not be resigned to manual labor.
The real answer, is that it doesn’t matter who asked me, or why. I believe that it doesn’t matter whether you are a high-school honor role graduate thinking about your College Major, or a 28yr old who just finished your first county jail sentence looking to finally straighten your life out. This brings us to our question:
So what do I need to learn?
The straight answer is pretty much all of it.
Even if you do end up being a web developer and never once in your career have to consider where your programs data lives in memory, actually have to use pointers, or other various lower level concepts. In order to set yourself up for success in the kind of industry this is turning into, you are not only going to want to know how to program and use existing frameworks, but you are going to want have to have skills and knowledge to separate yourself from 10 other people who can do the same thing all fighting for the same job. It may seem like the jobs are getting easier, due to innovations like copilot and other generative AI tools.
Yeah, It’s getting so much easier that the easier jobs will be done more and more by LLM’s, leaving the more difficult jobs and concepts (like debugging horrible chatgpt code) for the rest of us.
What I mean is, there is no secret to getting good at this and there is no one magic language you can learn in 2023 to get a job and make the highest salary no matter what you see on youtube. Why is computer science looked at differently than something like structural engineering or physics? Doubtless because you don’t need a degree, and really all you need is a computer and a whole bunch of time. My point is, if this was the case for any other kind of engineering or physics or chemistry, I don’t think people would be treating it the same, and thinking it’s something they can pick up in a few months and make a career out of.
Not only do you need to learn how to program, you need to learn about the endless icebergs of existing programs, technologies, frameworks, libraries and platforms out there, and the technologies all the way down the stack that those technologies depend on, that are relevant in our lives as devs.
Think about things like libgit2, nginx, glibc, libcurl, openssl, x11, QT, GTK, HTTP, REST, TCP, UDP and a million other libraries, protocols and programs are, you at least need to know what they are and what they do, and sometimes generally how they work or what their api looks like or what compatibility issues each might have. You need to know what a compiler, a linker, and interpreter, LSP, AST, and an API is, what a mutex, a hash-map/set/table, a linked-list, tree, stack, queue. You get the idea.
I’m not saying you have to learn and love every second of the frustrating and painful process by any means, but if you don’t enjoy learning new things constantly, if you don’t enjoy the logic and puzzles and problem solving… If you don’t enjoy a challenge that grows exponentially by layers and layers of complexity in each part of the stack, then it might not be up your alley, and that’s okay. There is absolutely nothing wrong with that, it’s really not for everyone, much like physics or organic chemistry or medicine isn’t for everyone either.
People might get upset hearing that, especially coming from me, and if I’m honest I’ll admit it absolutely does sound pretentious. Maybe it’s the fault of all the “Learn ${language} in ONE hour” Youtubers, or the tiktok influencers who say they got a 6 figure job after “learning to code” in 90 days, why they get upset and hearing this about programming in particular.
I believe that those who will be successful in the long run will be those who take the time to gain the experience and to learn their way around all the layers, not just their comfy corner of it. From the ground up, from the logic gate to the web server. So I think these days, the only answer to: what you should learn, is really you just need to learn everything.
(And don’t start with Python, but that’s a 🔥take for another post maybe)
</rant>
Disclaimers:
Thanks for reading this.
-Preston
If you have any comments or questions hit me up @ P@eza.rocks
Any sufficiently advanced technology is indistinguishable from magic.
My story, and how this is all possible
(Modern) PHP: Does it really suck?
Processes, Pipes, I/O, Files and Threads/Async
Unsolicited advice for anyone seeking to learn computer science or software development in 2023.
How I got here is already far too long, so I must include a separate post for all the credits and gratitude I need to extend to those who made this possible.
Following up on the first impressions post, let’s solve a problem in OCaml and compare the Rust solution.
Humorous article, completely unrelated to, and written before, the others ended up actually on the front page.
OCaml: First impressions