I had a similar problem when I was starting out. I remember finding interesting resources/tutorials that pops out daily on r/programming and never finishing anything. What I did was straight up not go to that subreddit and focus on one thing (which was FreeCodeCamp at that time). Rinse and repeat!
In a nutshell: you don't need a million of resources to learn. Pick one and block the rest. You'll learn more finishing a good project/course/tutorial/code-along than half-doing a bunch of them.
Thanks! That makes a lot of sense. I'll probably focus on FCC, at least for the time being.
FCC is a good resource with a solid community built around it, so you're in good hands. Good luck!
Yes, exactly, that's the right move.
I also have the same thing. So I decided to exhaust one resource first and only then try to go for another stuff. This is way instead of running in the loop learning the basics again and again I'll be able to just fill the gaps later on with other material when needed.
And you have probably noticed, that the materials are not new. They just reiterate each other.
There is information overload if you look at all the tutorials, trends, new tech, tools, options, even for people who went to top computer science universities.
Since often times, for example, the computer languages you learn in class may not be the languages/frameworks/tools/processes that actual industry uses.
And there is the grass is always greener syndrom. For example, say you are learning Python, someone mentions Go is the next cool thing. You suddenly feel you need to learn GO instead. Or if you are learning react, suddenly someone says vue is cooler, then you feel like you have to switch.
So, instead feeling that you need to learn all the languages/tech, focus on learn to solve problems.
Once you learn one thing really well, and learn how to solve problems in that language/framework. Most general program languages and framework will feel very similar, and you'll be pick them up quicker.
Like Kasey said, pick one app idea, and just start to make it work in the general programming language you most familiar with, and only focus on resource/tools/frameworks/medium artcles that help you build that app, and not be distracted.
Even if your end result app isn't production ready, you learned a lot.
Thanks! I definitely tend to fall for the grass is greener syndrome. It can be a challenge not to get distracted by shiny objects, for sure.
Definitely 👂 ya... It feels like you gotta know everything before you can learn anything.
Honestly, there's just so much information out there to remember and commit to memory. I would recommend just learning how to get used to reading documentation and how to navigate them, this is a skill that "I believe" is indispensable in your journey because once you get used to the language (weird technical writing style) you'll be able to get answers to your questions. I would also argue this because unless you have a photographic memory it'll be easier to quickly reference or refresh your memory.
You might like devdocs.io/ or kapeli.com/dash.
Other than that, I would say just start building and breaking things. Which should empower you with more and more confidence, experience, and wisdom.
Perhaps if you have the time and patience, find an open source project you fancy and open up the debugger and just stack trace all the things to see how it works.
Best of luck, and I hope you stick with it! 🍻
For the rest of this, I will be talking to my past self as though I asked the question near the beginning of my career.
You cannot suddenly know how to be a good dev. I believe the only way to make progress is to learn something small and iterate. Just pick tools/frameworks/languages that seem interesting. Understand that you will not be sticking with them forever, so use them with a light touch. (Try not to invest too much time into learning the ins and outs of frameworks.)
Decide on an app that you want to make (if not already being paid to make an app), preferably something that you will use personally. Start with nothing and add one small thing (typically Hello World), then keep adding little things to it. You will constantly run into things you do not know how to do. Research and experiment to get it working. As you keep adding things to your app, a couple of things will happen. You will have a vague feeling that there are problems with your implementation, but you are not quite sure what they are or how to fix them. You will see various suggestions and examples online, but you will not understand why specific tactics are used.
It's okay. Accept that these things are normal and you will resolve them eventually. File them away in your mind for later, but don't worry about them. I also encourage you to use tactics/designs/patterns that make sense to you, not just because somebody famous said so. When you use a tactic because somebody said so, you will probably apply it wrongly and be worse off than not using it. Eventually, realizations will come on how to solve those nagging feelings. Eventually, understanding will come on how specific tactics work and their nuances. The eureka moments will probably happen when you are doing the most mundane tasks, like getting ready in the morning or mowing the lawn. So don't try to spend every waking hour learning about dev, because the downtime from it helps you progress as a developer too. :)
Having a mentor accelerates your learning, so try to find one. But going it alone is also a viable path -- there will just be more time spend with trial and error.
I'm speaking here primarily of languages/frameworks/methodologies. Don't try to lead others into places that you yourself only just found. Wait a while until you've had a chance to discover the hazards. By then, it might not be a place you want to stay yourself, and you may wish that you never suggested others to go there. Realize that though you find joy in it initially, there may be a huge chasm ahead that you cannot yet see. Everything has trade-offs.
Thanks! I currently have a website that I'm building for a colleague, and I have some ideas of things I'd like to construct as well. I'm sure that what I work on will lead me down rabbit-holes that will open up new opportunities in the future.
And the advice on finding a mentor is definitely good. I don't have an "official" mentor, but I have found a community of more experienced devs I can talk to, and am finding that it really helps to talk with people face-to-face!
As someone who is two years into my first developer job and still constantly distracted by shiny new resources, blogs, posts, frameworks, etc., here's a few things I've found helpful to stay focused.
I stick to one core learning platform. Right now, it's Front End Masters, but it's been other places in the past (Treehouse, Free Code Camp). I try and stay the course until I've taken all of the courses/tutorials I want from that site or until it's not meeting my needs.
Keep an ongoing resources list - I put site urls, book titles, and any other resource lengthier than an article here
I also keep a Things I Want to Learn list - concepts and skills I want to learn or improve. For example: writing shell scripts, vue.js, writing better tests. I add new things to this list so that I'm not constantly distracted by ping ponging around all the things I don't know yet or want to get better at.
Pocket is my BFF. I read blogs and stuff, but I usually save anything with in-depth code samples or that will take me longer than a few minutes to absorb to Pocket. Then I archive them so I don't get overwhelmed by a long feed of unread items. Then, I can read them in batches if I want to work on a particular skill or read up on a particular topic.
On my to-do list, I added Currently Reading and Currently Learning headers. This helps me read one (not always tech related) book at a time and keep track of what concept/course I'm currently working on for tech learning.
This is maybe overkill for some folks, but this has really helped me stay focused on what I'm currently learning but also ensure that I can access cool new things later when I'm ready.
Good luck and happy learning!
Thanks! These are great tips. I'm definitely going to have to set up lists of things to do/learn!
Ideally you need a mentor (Jedi Master), and it should be your boss, if he can’t be your mentor, find another boss.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.