Gottcha! But seriously, there is still this misconception that programming is easy and that anyone can do it. Although, I do believe that anyone can become a programmer it certainly is not easy.
Get rich quick
"You're a programmer? Oh boy, you must be rich!"
I hear this far too often, though it is true that programming jobs pay well, this is not always the case and most of the time not for those that are starting their journey or in junior positions. This does, of course, depend on where and as a what you work as but the majority of the time it is, unfortunately, the latter.
I was interviewing graduates for a grad placement in the company I work for. 4/10 of the graduates asked me what my salary is, albeit it is because I am around the same age as them and I don't see anything wrong with this as it can be an incentive to sign up with us but, its the idea behind it that was evident from their follow up questions.
You can get rich from programming, but probably wont. If this is your only incentive to start or continue, I suggest you look at other career choices.
You need a certain mindset
I would argue that this is very much the case, you do need a certain mindset for this. There are several nights and days that I have spent staring at my monitor thinking 'It looks fine.. why are you not working!!?' Only to find a typo, improperly called variable or an unset property. This is frustrating beyond belief and can and will most certainly make you doubt yourself and your skills but you must keep pushing through and not give up. I am guilty of such crimes and have given up on many of my earlier projects because I've just become frustrated and did not enjoy what I was doing anymore.
Programming is problem-solving. Before you even type a single line of code you are solving a problem, your idea or your work has stemmed from an identified problem regardless of what it is.
Times have changed
Many languages are becoming more and more beginner-friendly and this is a good thing! but is it a great thing? The problem with simplifying things is that you lose the ability to do certain things. Take C++ and C#. In my opinion extremely different; C# supports garbage collection and automatically handles memory allocation (to mention a few) while C++ does not do either meaning you need to code the 'low-level' stuff.
It is getting easier and faster to do things, but by speeding down the highway you lose control over a few things... Sometimes important things. Take this as you will.
A few points I'd love to discuss in the comments;
- Is knowing one language enough?
- What would your response be to the title?
Still no gin,
Rus
Top comments (55)
"Programming is problem-solving." <-- This is the main thing about programming. It's a language that helps you build tools that solve problems. If you're the type of person to force things into place, programming probably isn't for you. Sure, you can force things into place with programming, but it'll often cause lots of headaches or cost lots of money down the line as needs grow.
It's like a carpenter, there's a certain way to build buildings, you can build many different shapes and sizes and as they get bigger you have to consider different methods. Sure you can use cheap wood and jam things into place but the structure probably wont last very long but it really depends on what you're using it for. If it's a quick program to last a day to get a simple task done, use cheap tools and build it fast. If it's a structure that you want to use for a very long time, do it properly and plan it out.
Programming is easy, great programming takes effort and very few people are naturally good at it.
Anyone can play heart and soul on the piano, being a great pianist takes time, practice, and effort.
Your carpenter analogy really hit. A fantastic way of explaining this - Don't hate me if I steal this :P
Thanks for the comment!
Thank you for sharing your thoughts! I think that programming became more accessible in the latest two decades. It started when scripting languages became famous. Then Ruby on Rails happened, where the scripting became more similar to the English language (eg.
User.comments.first
).Start programming is easy, become a programmer is another pair of shoes! It's a journey
When Linux and LAMP got popular, so did the scripting languages (PHP, Python, Perl, etc.).
On another front, Microsoft was also working to make learning curve for their stack easier and that resulted in stuff like FoxPro, Visual Basic, .NET and finally today's languages like C# and F#.
The result is that we have a plethora of technologies and stacks today with tons of helpful guides, tutorials and other resources, programming has become much more accessible.
For someone interested in learning programming, the present times are probably the best in history!
I forgot to answer to "Is knowing one language enough?" I think knowing one language is enough to understand and learn other languages easily. Is not mandatory, but it is not a big effort to do, so:
Also, I think mastering one language and then learning other languages later on is good. Learning multiple languages at once is not a good idea!!
Well said, thank you for the clarification!
"Start programming is easy, become a programmer is another pair of shoes! It's a journey"
This is it! Very well said.
To be fair, it’s not the programmers saying this - it’s the shysters selling python boot camps to wannabe coders. Every other junior I meet here in China who wants to learn development will give ‘I want to learn python because it’s easy’ as their primary motivation. It’s so sad - where’s ‘because I want to build cool stuff’.
Moreover, the ‘it’s easy line’ is driving down salaries because business owners who commission projects are starting to hear the ‘it’s easy’ line and won’t pay for their software any more.
Exactly your first point, and that's the issue.
Tbh, I welcome those kinds of people, makes my life better.
When their stuff breaks and they can fix it, who are they going to call? Us ;)
Thanks for sharing!
This gave me chills. So much marketing for technical tools is targeted at non-technical managers. The sell point is that the software solves problems, when the reality is that they provide tools to solve problems.
For example take subscribing to Cloudflare Enterprise for their Bot Management features. They provide very powerful tools in the form of full logs, granular firewall filtering and advanced metrics. The sales pitch involves a viewing of beautiful dashboards in which they show you the data and analytics you could be seeing.
But in reality, it is 100% up to you to do something with these logs. You have to pull them from their servers (Lambda), store them (S3), parse them (Logstash?), load them into an analytics backend (datadog, elastisearch) and build your own dashboards (kibana / grafana), draw your own actionable conclusions and write your own firewall rules. The power potential is there, but it will require a bit more investment and time and research if you don't already know these things.
And when they’re told they need to pay someone to do this... ‘but it’s easy... I’m not paying that...’
We wrote an article called "Programming is hard because you decided it was easy." It seems like the idea that everything so be 'quick' or 'easy' - isn't just programming. Our phones and all of the micro interactions and dopamine are messing up the brains! RE: "Just a dude with mediocre code skills" (those are the people the make the world go round ;)
Hahaha! This might be my favourite comment ;)
Thanks for sharing.
Also, had a look through the blog, interesting stuff. The sum-up video was really good too!
It's easier to learn than in the past, but also harder to master in the past.
We have way more changes within 2 years than it's used to be years ago.
Also, its not only writing code. A lot of people code for years but don't really understand design patterns. Or they don't understand why we do unit tests...
Also, it feels like there is a misconception when its comes to jobs. People learn JS for a half a year and think they'll get a lot of job offers. But that's usually not how it works.
Programming should not be seen as a exclusive club for geniuses. That's not healthy for the scene, not useful for the startup economy. In that regard, "programming is for everyone" that means that any person that wants to have some approach to programming should be able to do it without hitting a wall.
Since hardware, software and courses are expensive too, making approaching programming accessible and friendly for newcomers is a step forward in equity and a responsibility for all of us. Having the time and resources to program is a privilege for which I am grateful.
Having said this, there's a huge field of what a programmer can do and in what level of professionalism. Anyone can write a novel. That doesn't mean that there's no merit in writing a great novel.
"Programming should not be seen as an exclusive club for geniuses" - Could not agree more, but some people don't see it this way, they see us as going on a few courses and boom, we can write code with our eyes closed which is just ridiculous.
"Anyone can write a novel. That doesn't mean that there's no merit in writing a great novel." - A good novel doesn't make history, a great one does ;)
Thanks for sharing!
a) Yes. Logical/mathematical thinking is universal. The language is a tool.
b) Trick question. Depends on the person. Some people have the right mental models and would laugh in your face if you showed them FizzBuzz. Others wouldn't be able to make heads or tails.
Hi Rus! Nice post, I'm a newbie at coding, I'd like to know which language do you recommend to learn how to code? Can it be Java or I can choose another like C++, golang or JavaScript?
Hey Juan!
Glad to hear that you're looking to take up coding! :D Regarding which language to learn, that really depends on what you're looking to use the language for? Making a website and an operating system will require you to know and understand two completely different languages so I can't say learn x over y, or z over both if you catch my drift!
Have a read of this post I wrote a couple of days back, hopefully it will give you some of the guidelines of what to focus on once you've selected your craft!
dev.to/goldennoodles/the-downside-...
Thanks for the post and always happy to chat :)
I just read your article about your first experiences as a developer, It was really good and encouraging, now that I have found a good community here at DEV I'm also really happy. Now I'm focussing more on deciding the path I'm gonna take beside the things I'm learning right now in college, so, I would really like to start engaging with some web development as a side learning. I'm currently learning java at college, What are your thoughts about this, I would really like to hear the voice of experience. Thank U!
Oooof, I have a love hate with Java (hope my boss doesn't see this 😂) don't get me wrong java is great, gets the job done and does it pretty well... But can be a bit 'iffy' at times. Get your knowledge and understanding of java up and the other languages will be much easier for you to learn. I started off with Java and then moved on to C# and beyond and I came out okay 😂
Hilarious 🤣, I'm enjoying java for the moment, it's good advice to master one language first and then moving on, appreciate all your help!! Best regards
Great article, Rus. Programming is about as easy or difficult as learning music, singing or any other art. To the uninitiated (and uninterested), it appears quite difficult but if you have a knack for it, it simply starts flowing, isn't it? Debugging and bug fixing looks like a challenging game to some, its like a quest, looking at which you feel restless until you solve it.
Exactly this, perception and the way you 'see' things is everything?
A bug? Or an adventure?
Thanks for sharing, glad you enjoyed!
Writing code is easy, programming is not.
Doing a task may be easy, solving a problem is not.
But the good part of it is that experience and open-mindedness helps you go from the first one to the second.
<3 x 1000