This message it's specially for anyone that just started programming and thinks "Maybe programming it's not my field", "This does not make any sense, I don't understand anything", or something similar.
I want to share some ideas if you're thinking about quitting programming:
1.- You're not the only one!
A common thought when this types of ideas come into your mind is thinking that everyone it's so good at programming except you. Seeing those open source projects and people talking about how easy Python is, and then you struggle to understand some supposedly easy concepts, let me tell you one thing, everyone struggles with "easy" concepts when they're starting in any field, outside of programming too!
It's the same as seeing an athlete doing some things that seem impossible to you without struggling even a little bit. You can't think that you're not made for athletics because you can't do the same as that athlete without any training! That athlete has probably been in the same situation as you a few years ago but kept practicing from zero. The same happens with programming and proficient developers.
2.- Programming is abstract
After some years, I realized that the programming learning curve it's really step at first, but then it flattens after learning a language and doing your first real projects.
The thing about programming it's that the concept of programming itself it's complex to understand. Programming it's not about memorizing words or learning how the syntax of the language that you're using works, it's about learning how to translate ideas into code. The languages are just tools to create a project, that's why the questions about "What programming language it's the best?" doesn't have real answers.
It's completely normal to start with programming and not understanding in which situations you could use certain "programming things", my advice it's to start doing projects at the same instant that you start learning!
The theory is useful to be applied to the practice, trying to memorize or learn things without knowing the purpose of it it's so much difficult.
If you only know how to print things on a terminal make a little program to print your name, if you also know about user input do a program that asks for your name and prints it, if you also know about if statements you could do a simple calculator! That will help you a lot to understand in which situations you could use the things that you learn, and everything will seem less abstract and start making more sense.
3.- I learned the basics... Now what?
Great, I just finished the CS50 course! I've learned the basics of programming languages (if statements, loops, variables, functions, classes...) also did some small scripts to put into practice the things that I learned, but now... How can I create something like Dev.to? Or even complex software like Adobe Photoshop? How can those things be made using the same concepts that I used for my calculator app? That's impossible!
If the major barrier was starting with programming, this is the second major barrier that a lot of people experience. If you're at this point, again, it's completely normal!
You know how to use the tools, but you don't know how to use them to build something! My advice is to progress doing projects escalating in difficulty and trying new things, programming or learning shouldn't be boring! If you want to build something big, instead of trying to approach it directly, try to divide the big problem into smaller tasks.
Also, don't fall into tutorial hell! Programming "tutorials" about building an Spotify clone aren't bad to take a general concept on how to approach things, but copying the code gives a false sense of productivity!
Ideas and resources
As you can see, everyone struggles at first. If you really like programming go for it! The difficult part is knowing how to approach the problem, the code itself it's just pure practice and reading documentation.
To improve your problem solving, the best way is to solve problems! Have fun and start building projects slightly above your current capacity (not too much), that way you'll be motivated and constantly learning new things!
Here are some resources that may help:
Problem solving
- Codewars: Practice programming problems in any language!
- LeetCode: Similar to Codewars but more focused in programming interviews.
- HackerRank: Similar to Codewars.
- CSSBattle: CSS design problems (If you like frontend, I recommend this a lot).
Ask programming questions
- StackOverflow: If you're a beginner I don't really recommend asking questions here, but you probably find the same question already answered.
- r/learnprogramming: Subreddit about programming questions.
Programming resources
- W3Schools: You can find basic examples of code, I used it a lot for HTML and JS and helped me so much!
- The Odin Project: This is only for web development, for me, one of the best free courses, and you'll learn a lot!
- Google: Of course, the best resource it's google! Learning how to search it's so important and will save you so much time.
- Language Docs: Almost every language has a website with documentation about the language, just search "[language] documentation"!
If you have more interesting resources to share, want to share you experience, or provide some more advice, please add them in the comment section!
So that's it. Don't give up please. Programming it's an incredible world and you can do an infinity of things with it, if you can't progress try different approaches, rest a little bit or try new things! Programming includes a lot of different fields, do something that makes you feel good, and have fun!
Good luck! ๐ค๐
Top comments (0)