If you are on dev.to, It's a clear sign that you do or have love for programming. I mean it's what's talked about day in day out!
Could you have stumbled on this site looking for a joke and didn't find it funny? I guess not!
Anyway, Programming has always been that cool thing.. The idea of being infront of a screen and write allien language that results into something amazing and solving problems.
I mean, even when you are bad at math, with a few lines of code you are be able to solve math problems. GENIUS!! Who doesn't love to be that?
Also, You can be a hacker.. We all love the idea of being able to hack but guess what? you gotta be good at programaming.
Why I'm I not that good? That is the question.
I went to school and studied a couple of programming languages (Java, PHP, C#, C++,Python, Javascript and, HTML-"Yes, I know, It isn't a programaming language"). I was good in school, I had motivation and also had to pass. Did whatever it took even if it meant I had to cheat (Not really cheating, I mean how can you be a programmer and you never ever use GOOGLE?! Weird right? )
Long story short, school ends and life begins at a speed of "You got bills to pay".. Believe that is Godspeed.
I can't get a job that requires the skills from school because I don't have 10 year experience and I got bills to pay.
After a good time of struggle, I get a job that requires no programming but atleast its IT related. I have hope of doing some programming soon because I love it!
I start writing a few codes as I do my job that requires no programming skills but I'm rusty!! and things have changes drastically, People are using frameworks and there is a lot of them.
I wanna get back to it because I love it but I don't have a mentor and motivation, I keep jumping from one framework to another,
Trying to learn every language I about, Looking for what is hot on the market.
NOW THAT IS THE PROBLEM
With the problems above I came to notice a few reasons why.
I am not getting good at it because I keep reading every new thing every person talks about because they did a project in a particular language and I wanna try that project.
Not settling to one language and perfecting myself is one of the reasons why I just don't get good at it. Because I wanna do something that is gonna be lucrative ASAP.
Skipping babay steps and start from the professional aspect of the language.
Learning through projects someone built without knowledge of the basics in the language.
Lacking a mentor and many more other reason.
WHY I WROTE THIS
I figured there must be other like me, struggling to get good at this thing we love so much but the approach is wrong.
We end up giving up what we would have been good at because how we approach it.
Top comments (13)
You got it backwards.
You are not getting better because you try to be a programmer for the sake of it.
While real good programmers got there because they were solving real world problems using programming as a tool.
Find something in your job that can be automated / optimized. Use ANY convenient language suitable for the task. Keep it simple. Proof your work by implementing it in production process. Repeat.
And do not overstudy ecosystems. You should first come to the conclusion why you need some framework, why you need Docker, why you need something from Amazon stack, etc. Do not try to master hammer theory before seeing the nail.
Pick one language/framework and stick to it. It would not be my preferred stack but React and Node/Express is probably the most flexible.
Find a problem you are interested in (I e. Not another Todo app) and learn how to build it on your stack.
What you will learn is how to THINK like a programmer: break the problem into smaller problems and fix them one at a time until you have a complete solution. Once you have done that, if you need to pick up a different stack, most of it will be Google driven. E.g. How do I extract and iterate a collection from a deeply nested object in language X. First you need to understand that this is what you need to do, then find the correct syntax for your object (JSON,XML,class,EDI file etc) and language (JS, python,ruby,c#, java, PHP)
In addition to the other comments people are posting, I would add that you need to focus on learning to think like a programmer. The reality is that programming and building complex systems comes down to a collection of simple concepts used in the right way. So pick one language and / or framework to work with (probably Javascript / typescript due to popularity) and then focus on solving problems and building things. Your focus on learning should probably have the following language related skills:
You should also work on the following concepts
The goal is to get very proficient with one language, and also to learn how to solve problems. The problem solving thing is the important part. Once you are good at one language your skills become portable because you know what to ask, as in "How do I assign a variable" or "How do I break out of a loop if something goes wrong". But without that problem solving aspect you won't get anything really significant built.
This is where things like Leetcode and the problems they give you can be very helpful: they present you with problems you wouldn't normally come across, which forces you to stretch your problem solving ability and get better at it. So find a free tier of one of those kind of sites and work through some problems. It should get you thinking pretty hard about how to break problems apart into steps and solve them. And try really hard to avoid cheating and solve everything yourself first, then look at solutions others have provided. You will get a lot more out of it that way because you will often see many ways to solve the same problem - your way and the various ways others did it.
You don't need to chase every new tech, and don't worry about things like Docker, AWS, etc. until you need them. (And you will know when you need them, trust me)
And also, if you want to succeed, you have to really enjoy programming and solving problems. If you never got paid to write code and would still enthusiastically do it in your free time because you enjoy it, you're in the right head space.
Please turn this into a full blown article with examples from your own experience if you have the time.. I mean that as a compliment!!
Cannot speak for others but took notes on your comment and sketched out a work plan. So even if you don't, thank you for this
I took your advice and started an article, that quickly turned into a series. You can find the first article in the series here.
Much appreciated!!!
My advice:
Okay here's the advice to any new web developers:
You have to make a decision on what you want to do. Do you like backend stuff? Pick a modern BE language and get good at it, do you like FE, pick a modern FE framework and get good at it, do you want to be all-round/full stack? Learn nodejs and docker and pick a FE framework to get good at. Once you're confident in whatever you picked, find a job that asks for those skills. Once you got the job, you can start learning random other things.
I would definitely suggest tightening your focus. Pick a specific stack (SvelteKit is good to start if you're going into web development, since it takes care of most of the more difficult stuff) and stick with that until you've mastered it. You do not need to know all of those languages at once, since you are not an entire IT department. If you are going into web development, definitely try to keep up with JS and C++ (which can be used to make node.js libraries that have native functionality) and possibly take a look into using TypeScript rather than JavaScript, since it can help you find some smaller errors before you actually run the code, saving you precious debugging time.
Hope you found this helpful.
I'm afraid you try every part of programming, and that is do not lead to progress. GIve a question to yourself: whic is your faviourite project, which is really exciting to make it. Then choice for the right languages for that, and take the time to deeply understand. Until you do not feel comfortable a little bit in a language you don't able to finish your task.
So what type of program do you really would like to make?
(Maybe I can give advice which is the right path to reach your - sort - goal)
It's not entirely bad to hop between languages. Sometimes seeing the same code written in multiple languages is the best way to understand underlying concepts such as data structures and algorithms.
At the same time, you should stick to a language long enough to complete a project. If you are avoiding challenges, you can't learn from your mistakes.
This is why seeing a project to completion is the best way to get real experience with a language. You have to push through the difficult problems.
Your asking for a unicorn if you don't focus on 1 part of tech. So go deep into 1 that is relevant to the work, job market and the type of company you want to work then spread out.