DEV Community

Cover image for Programming is easy!
Rus Kuzmin
Rus Kuzmin

Posted on

Programming is easy!

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)

Collapse
 
fetchworkglenn profile image
Glenn • Edited

"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.

Collapse
 
goldennoodles profile image
Rus Kuzmin

Your carpenter analogy really hit. A fantastic way of explaining this - Don't hate me if I steal this :P

Thanks for the comment!

Collapse
 
andreacanton profile image
Andrea Canton

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

Collapse
 
prahladyeri profile image
Prahlad Yeri • Edited

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!

Collapse
 
andreacanton profile image
Andrea Canton

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:
just do it

Collapse
 
rakshakannu profile image
Raksha Kannusami

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!!

Thread Thread
 
andreacanton profile image
Andrea Canton

Well said, thank you for the clarification!

Collapse
 
goldennoodles profile image
Rus Kuzmin

"Start programming is easy, become a programmer is another pair of shoes! It's a journey"

This is it! Very well said.

Collapse
 
perpetual_education profile image
perpetual . education • Edited

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 ;)

Collapse
 
goldennoodles profile image
Rus Kuzmin

Hahaha! This might be my favourite comment ;)

Thanks for sharing.

Collapse
 
goldennoodles profile image
Rus Kuzmin

Also, had a look through the blog, interesting stuff. The sum-up video was really good too!

Collapse
 
ortonomy profile image
πŸ…–πŸ…‘πŸ…”πŸ…–πŸ…žπŸ…‘πŸ…¨ πŸ…žπŸ…‘πŸ…£πŸ…žπŸ…

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.

Collapse
 
goldennoodles profile image
Rus Kuzmin

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!

Collapse
 
jgusta profile image
jgusta

"...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."

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.

Collapse
 
ortonomy profile image
πŸ…–πŸ…‘πŸ…”πŸ…–πŸ…žπŸ…‘πŸ…¨ πŸ…žπŸ…‘πŸ…£πŸ…žπŸ…

And when they’re told they need to pay someone to do this... β€˜but it’s easy... I’m not paying that...’

Collapse
 
krtobias profile image
Tobias Krause

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.

Collapse
 
jillesvangurp profile image
Jilles van Gurp

Coding is easy, computer science is not. In order to write good code, you need to know both. Additionally, to write the right kind of code you also need to have the end to end perspective on good design, a firm grasp of process and methodology, and ideally the product domain you are working in.

That part is actually hard and the difference between copy pasting some python/javascript/whatever and adapting that and engineering proper solutions.

Part of the problem is that several of these things are not really covered by education programs. Most of this is either self taught or absorbed through having worked as a junior engineer with some seniors. Basically, like many crafts, you learn through apprenticeships. Your first jobs are about learning this.

So, it's not about the number of languages you know, what books you read, or what institution put their logo on your diplomas, etc. but what you have done in terms of building real world systems and what you have learned from that experience. Some people are quicker than others to pick these things up.

Collapse
 
goldennoodles profile image
Rus Kuzmin

Couldn't agree more, I have started recommending apprenticeships to those looking to get into the tech industry, sure you don't get paid as much, but:

  1. You usually have a job guaranteed at the end of it.

  2. You will learn a crap ton more than you will at university.

  3. You're getting paid to learn and will get a qualification at the end of it.

Thanks for sharing!

Collapse
 
patopitaluga profile image
Patricio Pitaluga

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.

Collapse
 
goldennoodles profile image
Rus Kuzmin

"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!

Collapse
 
glyphcat profile image
GlyphCat • Edited

β€’ Is knowing one language enough?
γ€€- Nope
β€’ What would your response be to the title?
γ€€- "Programming is easy… and 99 other jokes you can tell yourself" lmao. I do agree that mindset plays an important role here.

Collapse
 
goldennoodles profile image
Rus Kuzmin

Lmao! That's a good one.

Collapse
 
iamshivampandey profile image
Shivam Pandey

What passionate me is to code and that satisfaction after building something.
You should be more passionate towards your work this is what i believe,I wrote an article as my Developer journey so far.
dev.to/iamshivampandey/my-story-so-far-as-a-developer-1e38

Collapse
 
bingofingers profile image
bingofingers

I've been programming for sixteen years and have learnt dozens of languages. I'm a work in progress. The one character trait I have that I think is probably is the hall mark of a competent programmer is perseverance. I have some psychological need in me to keep at problems until I reach a satisfactory outcome. I'm never satisfied with the final result because I can always see room for improvement.

Collapse
 
goldennoodles profile image
Rus Kuzmin

Perseverance = key!

Thanks for sharing!

Collapse
 
redeving profile image
Kelvin Thompson

I agree, a certain quality of mindset is helpful indeed. So is learning to play with your own mind. Your typo example for instance, aggravating yes. But I've managed to trick myself into reacting like it's a quick quiz thrown at me by my cat (those alien social scientists studying us) and I go on a hunt for the hiding mouse, so to speak. I'm remembering a rogue comma right now that I recently eventually found! I play these tricks on myself in other ways to keep my mind sharp for sudden unexpected weirdnesses. Like randomly, purposefully, putting my keys into a different pocket than usual. You wouldn't believe how that'll drive you nuts, but it helps with blinders caused by routine thinking. At least, that's how I use it.

Great article, thanks. Cheers!

Collapse
 
goldennoodles profile image
Rus Kuzmin

Haha, that's a good take on it!

Thanks for sharing.

Collapse
 
radoslavgrn profile image
Radoslav Nikolov

Becoming a programmer is at least a 3 years journey, working in a company of course. There are very bright students who create individual projects but at the end of the day it is and will always be the business needs first. From my practice, I know clever guys who outsmart me but couldn't bare working as a team or in a company for someone, doing tasks and stuff so they decide to study and go for a master or above and delay the actual work. Of course some chase a job in R and D but still, being a programmer and being a programmer for a living are two different things.

Collapse
 
alkafaiz profile image
Faiz Alkautsar

Nope, I dont think knowing only one programming language is enough. It may be okay if u do not seek for advancement in your programming skills both technical and conceptual. But to fully understand this domain, it just inevitably requires us to learn other programming languages. It is part of the job, and I think it's fun to experience the journey of always-learning new things that we didnt know before. But one thing for sure, programming is not for everyone. Some type of personalities might just be too stressful when being asked to do this kind of job constantly.

Collapse
 
goldennoodles profile image
Rus Kuzmin • Edited

"Some type of personalities might just be too stressful when being asked to do this kind of job constantly." - Couldn't agree more, I've witnessed people suffering to the point of becoming depressed; I can assure you it's not a pretty sight.

Regarding learning new languages, you're absolutely right. To progress and further yourself you need to improve and learn. I've never worked at a place that required you to know one language, but then I think this debate comes into play: "Quality over Quantity?"

Thanks for sharing!

Collapse
 
juanorzam profile image
Juan I Orozco

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?

Collapse
 
goldennoodles profile image
Rus Kuzmin

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 :)

Collapse
 
juanorzam profile image
Juan I Orozco

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!

Thread Thread
 
goldennoodles profile image
Rus Kuzmin

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 πŸ˜‚

Thread Thread
 
juanorzam profile image
Juan I Orozco

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

Collapse
 
martixy profile image
Martin Ninov

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.