I am confused there is soo many things to learn. I don't think I can learn enough to become a good programmer
For further actions, you may consider blocking this person and/or reporting abuse
I am confused there is soo many things to learn. I don't think I can learn enough to become a good programmer
For further actions, you may consider blocking this person and/or reporting abuse
jordan wilfry -
Madhan -
Gaurav Adhikari -
Mike Young -
Top comments (36)
Hi! I have bad and good news (but the good news outweigh the bad news.)
On the one hand, you're right. There's lots and lots of things to learn. I've started learning my first language (JavaScript) when I was 13, as a hobby. Now, I'm 31 and I'm still learning about the language.
On the other hand, you don't need to know everything to be a good programmer. I became a professional dev at 18 years old. At that time, I knew far less about JavaScript and other languages than I know now, but that didn't prevent me from get jobs and build amazing things in my career.
Think of programming languages as tools. The more tools you have, the more things you can do. But you already can do many things with the tools you already have.
Exactly. You use the tools to build something, but YOU are the one building it. It's more about building your critical thinking and your resilience to figure things out, than about learning something specific.
There is too much to learn, but the same applies in any industry. If anything, in programming, you can know far less before you can get a job (compared to a 3 year university degree).
In fact, a friend of mine started learning a few months ago and he's doing really well. He should be able to get a job soon.
My advice is to start learning only what you need. Everything else can come after. You don't need to know everything to be a good programmer. You just need to be good at a few things, such as HTML, CSS, SASS, JavaScript (if you're doing front end). Know the basics of some other things, such as git, security, accessibility. Make a small portfolio of anywhere from 1 to 3 projects (some courses go through projects as well). Then, you can start as a junior developer and keep learning from there :).
You still have to work hard though :). It takes many years to get good at any field.
I remember thinking the exact same thing when I started programming. I looked at all the awesome things other people had made, and then I looked at my simple "hello world" C++ program, and thought "there's no way I'll ever be that good."
That was 13 years ago, when I was in 8th grade. Now, I have an undergrad degree in computer science, and I've been programming professionally for over three years. And I still look at all the awesome things other people are making, and I still wonder if I'll ever be that good. But at the same time, I'm able to reflect on the past 13 years and acknowledge just how far I've come.
You're correct that the world of programming is massive, and it can feel overwhelming. That's also part of what makes it so enjoyable - there will always be something new to learn. Programming is a lifelong skill, and I'm sure I'll be learning new things about it every single day for the rest of my life. I will never know "everything", but I will at least know "some things". More importantly, I'll know "enough" to make some cool projects of my own, and then I'll learn how to make them even better.
Everyone's journey is different. As long as you enjoy programming enough to want to keep doing it, I guarantee you will find success. Even if your success looks very different from my success, or anyone else's success, that's okay - it's still success!
Of course you can. It just takes time. (I started learning 3 years ago when I was like 10 and now I can call myself a "Javascript intermediate")
its me!!! timothy
SIDD
Sorry, what?
oHHH u have the same name as my long-lost friend!
Long lost friend, huh? I hope you find him/her (mostly him)
Yes, it can be overwhelming and one way is to focus your learning is to build own solution that can be developed over days not weeks. Apply 80/20 rule to learning whereby 20% or less of learning are really useful for your own project, so how do we know what is 20% is ? Simple, just get started to build solution (eg web application, desktop application , mobile app, macro ). When one focus on building solution, he soon know what is important and the area to focus on because he solving a real problem. Without a purpose, a lot of time is wasted for the sake of learning.
If one really want to learn something, learn by doing, building something useful, and the knowledge,experience and skill will then be developed along the way. Programming is not just one particular skill or language competency but many skills, (eg sql, unix tools, regex, xpath, css selector ) and all these can be learnt holistically by developing a solution.
You won't become a good programmer in a day or a year. Being in this space means that you are willing to fail day in and the day after, but while failing you must be open-minded enough to learn from every mistake.
Don't be confused by the big stacks and all that is out there. Start with finding out what you want to do. From there research the basic. RESEARCH, not learn,. If you dive head-first your chances of getting confused increase significantly. Once you understand what are the steps you need to take (the basics of what you want to do), that is when you would want to start learning something.
The bottom line is you do not need to learn every single thing to become a good programmer, even software engineers that have been doing this for years are still learning every day. Just take one step at a time.
Programming is kind of like medicine that way - there's a LOT to learn, so you only really learn what you need to. From there, you learn how to find information you're looking for.
Once you get the overarching concepts down (design patterns, oop, clean code, etc), putting together quirks and specifics of individual languages isn't that bad. If you know how to do something in one language, you can then use that knowledge to hunt down how to do it with a different language (or find something better!).
I'm going to assume you're a beginner with no roadmap. There are tons of resources out there to help you get started. I'd recommend figuring out what type of development you want to do (web, backend, gaming, etc), maybe find a stack you like (i.e. MERN), and start hunting for "beginner roadmap for [what you want to learn]".
Remember, we all started with Hello World.
You need to understand that it takes patience, commitment, and practice. There are a lot of ups and downs, that's the truth. But every great developer once didn't know how to link stylesheets, but guess what, they kept trying every day and some day, they knew how to develop an entire website. Just practice and stay committed. The day will come
That's why nowadays it's hard to be a true "full stack" dev. Nevermind that this concept applies just in web development (you also have desktop development by that's not really part of full stack, is it?) nowadays even the classic parts of full stack need to cover more and more.
As a tech lead/architect there's nothing more annoying that encountering devs who think development is just about writing code that accomplishes a requirement.
Don't get discouraged. There's a lot out there, yes. But as many of these fine folks have said, you will not attain mastery in a day, a month, or a year. True mastery is to be able to pass on what you have learned to others while still continuing to learn and improve.
Anyone who sits back on their laurels and says "I am a master" without constant nurturing of their skills and craft is someone you don't want to stick too closely to. I'm on my way to being 51 years old and I've been in the business since 1992. I have a lot of experience, but I also have enough perspective to realize I still have a lot to learn.
With the right attitude, this is a challenge that will open up a careerlong/lifelong journey for you. There will be ups and downs like anything, but it will be rewarding.
If I have any "real" advice for you, it's this: