Honestly all this world looks really overwhelming, there’s too much stuff going on: each program uses its own languages, its own compilers, uses different tools, libraries, dependencies, package managers and frameworks. You need specific instructions and documentation to learn new stuff at every single thing you deal with.
Whenever i open a project on Github i just feel overwhelmed because there will always be something new and i’m afraid i won’t ever get out of that way of operate that “somehow makes things work” and really understand my code and program interactions…
Honestly it’s really complicated because you use a program you need and you just see it from the surface, you don’t have the time to learn how things work in a slightly more linear way, it would take ages considering the fact you probably need other 10 programs like that. To me it looks just like modern programming is about grabbing different pieces of fragmented knowledge all around web forums, wikis (or chatbots, which for me are just the next way of giving up our ability to learn) and somehow making things work.
I just get overwhelmed even when i take a look to a github page sometimes, even the frontpage has so much stuff you won’t ever learn.
Another thing is the online community is the most sparse thing, far from actual real communities there is, you can work with people who won’t ever even talk to, and their contribute can be as sterile as just creating a pull request and then leaving forever. You are mostly on your own striclty speaking of human connections and ability to share ideas and feelings.
I’m very fought because i somehow feel like i really love how certain ideals and creativity can be expressed with programming: i love that you can use something practical to solve idealistic, creative and technical problems. I love stuff such as digital etic, cypherpunk movemenet and all the work that opensource devs do to make the industry just a bit better, sometimes even receiving donations for their work, which for me is the highest form of payment, i’ve never seen someone more happy to pay for something as in the opensource community. But at the same time i’m starting to loathe technology and the internet because, adding on top of everything i said above about the sterility of the community, the difficulty to concentrate on a single thing and the dispersion there can be, i’m also dealing with a 10 years porn addiction since 5 years ago, progresses happens but are really slow and using my computer or phone is a huge trigger even if i’m trying my best to make them as minimal and not addictive as possible. Trust me, in a world designed to get you addicted to your hardware and software, being grown up used to doom scroll every day, it takes a huge amount of time and effort to have your things all sorted up to guarantee yourself a bit more privacy and software that is actually useful and doesn’t want to keep you hooked, and at the same time don’t be too much of a social outcast. You actually have to re-learn computer, or better saying, to actually learn computer for the first time, because you realize you can’t just rely on having everything ready, set up, and just working from scratch without paying in some way, and the price that most big techs set is even higher, and far more subtle than just paying with money.
The software industry right now is shit outside of the few developers that are actually building products FOR users, and not for money, and of course that does mean that if i follow my ideals, i won’t nearly have these much economical opportunities as every “usual” developer gets. It’s a huge headache having to deal with programs even when i do it for myself, i can’t even think of doing that for someone else right now (with all the work and continuity that this requires) and i’m thinking if i should really put my efforts somewhere else.
What made you decide to get into coding? It almost sounds like it’s not your thing, but of course I could simply be misunderstanding you.
What kind of projects do you enjoy to work on?
Honestly when i first got into coding i liked the fact it could give me jobs i could do from every part of the world, that is still on demand and that gave a certain freedom on how you approach technology and customize it to make it your own, i always liked to tinker around with computer and i even have a small home server i use for several stuff. I loved how useful internet was to find informations otherwise unreachable and share stuff without censorship woth everyone, as i said i love the story of the cypherpunk movement, i see bitcoin as a real solution to our obsolete economy, and i thought i would have liked to have a role into changing this shitty system paradigms, my target was to work with lightining network or similar protocols maybe one day. However i feel like i’m changing lately and i’m lacking human interactions so much, there’s no point in building something toghether if there’s no emotions to share with others before, during and after the process. Maybe it’s just how i’m made, but i cannot stick to it, i just get super depressed and i see no point in doing it. Maybe i’m just lazy i don’t know, but it is like that.
Adding the fact that sometimes i feel like technology controls me, and not the opposite despite all the efforts i make, feels just super wrong and not how i want to live.
I’m studying webdevelopment so i’ve had the opportunity to work only on simple stuff so far, but it already feels super overwhelming, sometimes i get lost just in setting up my coding environment, just to realize it will only be one of many i’ll need to learn how to work with.
I get what you mean about working with people/customers directly. You know you don’t always end up with the job that you think you’re studying for. Life can be really dynamic and you simply have to go with it. It’s impossible to tell where you’ll end up. The strangest jobs are connected.
I mean one time I met a guy from Germany who climbs trees in Guyana. Who knows how he ended up doing that.
And I know a coder who became a horse shoe blacksmith. And a trashman who became a mathematician.
If you don’t enjoy coding then maybe that’s not your call but there’s so many jobs surrounding it and it’s good to connect to others in your school.
Frameworks come out faster than you’ll learn them. Nobody knows the entirety of C++, how are you going to learn everything on top of that too?
And how you deal with that, how do you choose what to do and what not to do?
That’s up to you! There’s so many different disciplines within programming that you will learn some easier than others, and you will enjoy some more than others. You said you’re learning web development right now - it may be that you don’t like web development, not development. You could also try scripting, you could try databases or backend development. If you don’t like Javascript, you may like Python.
If you desire the opportunity to peer-program, you know writing code with someone else together, then you may look for projects that have active Discord channels so you can join a voice/video call.
And your general anxiety about the state of the internet being controlled by a handful of massive companies isn’t merely paranoia - a lot of people feel the same anxieties so you are absolutely not alone in that regard. Just make small things you like making - don’t worry about what framework it has to be made in, or what language you used.
I’m actually curious on Rust, i don’t like how dispersive can be JavaScript, i prefer to build smaller, maybe uglier things, but that work and are nicely stable, scalable and can be integrated on multiple different platforms. Also i love that almost everything runs on Cargo and i don’t have to choose between 100 things that essentially cover the same target. I also think the Discord idea is quite good, i just want to find someone who is on my same level to grow / build cool things toghether, or small projects on which i can actively partecipate, there’s also an association near me that promotes opensource projects and give free code lessons, i might give it a try as well and see if i meet someone there. I’m gonna give it another try before deciding of giving up, i think it is deserved.
Good on you, and good luck!
When physically building something with your hands, ex. fixing a drawer in your kitchen, notice that you don’t walk into a hardware store and feel overwhelmed by all the different parts and tools in there. You don’t feel like you need to buy and learn every single tool in the store just to fix your drawer. Instead, you understand what it is you’re trying to do, and you think about what tool would best help you get to that goal. Maybe grab some wood, a saw, and a hammer, and then go home and get to work. Unless you have very unique drawers, you don’t need to concern yourself with the lighting and plumbing aisles.
How familiar are you with x86-64 (or any other arch)? I think doing some assembly work might help, because at the end of the day, all these frameworks and languages and APIs are just attempts at creating the best sequence of asm instructions for the hardware they’re targeting. Once you realize that, you see that everything is just a different imperfect tool that someone came up with to generate slightly less shitty asm.
The reality is, there are few new ideas under the sun. Some of these new frameworks are minor incrementations on existing ideas, and the vast majority of them are just doing the same thing in a new language with all the same pros and cons.
Experience isn’t knowing how to use every tool, experience is being able to envision the final goal, hypothesizing what tool would make getting to that goal easiest, and then looking to see if that tool exists. If not, then try to find the closest approximation to that hypothetical tool, or build the perfect tool yourself (thereby adding to the infinite pile of tools out there).
Hey,
I am an electrical engineer, but a natural at coding so after I got my degree I was quickly pushed by my employer towards more programming related projects. I was pretty good at it, but I suffered from similar issues as you. The race seems never ending and there’s always a new thing to know just around the corner, with seemingly no space or time to learn stuff in depth or create a decent and understandable architecture and documentation. I also really missed the social and emotional aspect, which seemingly is not how all people function: a lot of my colleagues were perfectly content to spend 8 hours a day racing through libraries and editors and calling it a day. In the end I got a pretty severe depression and anxiety (those issues were already underlying but the work triggered them again). It took a long time to start recovering again, but now I feel OK most days and I have beautiful moments and value in life. After a period of therapy I started volunteering as a bike repairman parttime (as this is the only workload I could handle) and that was really nice. Now I actually started studying again to become a librarian or work in another function for public information and I feel that it suits me well at the moment. No one can tell what the future will bring, the librarian thing might work out or it might not, but there is always something new to do. Don’t spend your life trying to be someone you’re not. Don’t try to do what you’d love to be, try to love what you are.
This got a bit serious, but this seems like a safe space to do so :).
You have it backwards - we don’t find a cool project we want to contribute to and then try to learn the technology needed. Instead, we already know the language/tech/tool from our work or education and then seek cool projects to contribute to that use that language/tech/tool.
As a beginner you can’t expect to rock up to a github project and be productive or even understand what is going on. Usually open source projects are not extensively documented and no one will have time to show you around. That is no way to learn.
No one can be productive in more than a handful of languages/tools. Once you have more experience you will become specialised in certain languages and can seek projects that use those languages.
For now, try to find a situation where there are people around who will invest time in helping you to build your skills. A supportive employer, or tertiary education.
Yes, getting into a new project is hard. Even when you do know the languages and frameworks it’s still hard because you have to get into the mini ecosystem that the developers of that project built. In companies there is usually an expected amount of time (days? weeks? Months? Varies on the project) where a new developer is not really expected to do anything major, just getting used to the project.
I do not know if you are professional or hobbyist. But coding takes a lot of time, a lot of it is spent on just figuring out how you will code this or that feature ; then another bunch of time is spent debugging ; and finally, yet another bunch of time is spent integrating your new feature. That’s why it’s a whole job, and that’s also why you need a ton of free time to do this as a hobbyist.
But the good news is that once you spent that upfront time to get into the project, you can code more efficiently (that is, get right to the features you want to make) and you will also spend a little bit less time getting into other projects because although projects are different, there is always some level of organization that remains similar. The more advanced you become, the quicker you can get into a “production” state where you can code right away thanks to spending less time figuring out how things work.
Hi. I understand your rant. Yes, the quality of most frameworks in the wild is pretty low, especially if it is one of the more niche algorithm nobody takes care to audit, or the programming language lacks safety syntax, like C++, which allows writing mixed C and C++ code and only few people understand the necessity of idiomatic C++. And of course, inexperienced devs go the easiest way.
Don’t give up and take this as a challenge. It is a skill to understand what the other guy wrote. And this skill takes years to develop.
Yes, I feel you.
And yes, that’s how it is. It’s an insanely complex industry if you really want to understand how things work.
Which you don’t need to get things done.
Which you still can if you really want, if you’re willing to invest the time and energy to study it thoroughly for many years if not decades.
But even then, chances are you’ll be touching libraries, concepts or technologies which you did not study in-depth yet. I think you need to be both aware and tolerant of limited knowledge, and willing to learn continuously.
Just chiming to say I feel the same sometimes. But at the same time I’m also amazed and excited by the different possibilities. There’s usually never a black or white solution, although there are some best-practices that have established over time.
As you mentioned already, I think it helps to think of all the technologies, languages, frameworks etc. as tools to solve a problem.
Jesus this feels like I wrote this lol add the fear of AI getting better faster than you learn and you’re me lmao. I don’t have advice for you since I think I gave up on this for now, good luck to you tho :)
Yeah, like there is a few different angles to it:
-
I learned computer programming for fun. I installed linux, learned C/C++ and wrote simple CLI programs. Then I learned HTML/JavaScript, again purely for fun / my own entertainment. I never intended to earn money with it.
-
If you’re doing it for the money, then you’re fucked. There is simply no way of doing software programming, if you don’t have the will and love for the thing itself. The complexity will break you. Don’t even try. Also, economic chances for programmers are narrowing. I wouldn’t bet my economic future on it. Seriously, do something you love. That’s all the wisdom I have.
-