loading...
Cover image for Programming is easy!

Programming is easy!

goldennoodles profile image Rus Kuzmin ・2 min read

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

Posted on by:

goldennoodles profile

Rus Kuzmin

@goldennoodles

Just a dude with mediocre code skills. I do sometimes make cool stuff though.

Discussion

markdown guide
 

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

 

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.

 

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

 

My response to the title would be:

Writing code is easy. Writing good code is hard. Understanding the difference between the former and the latter, that's essential.

 

Understanding the difference between the former and the latter, that's essential.

That seems like a constant battle, too. There are always numerous forces pushing and pulling the definition of "good" enough.

 

If I could give you 1 million hearts I would because this is it!

Thanks very much for sharing Alain.

 

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.

 

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.

 

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!

 

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!

 

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

 

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

 

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!

 

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

 

Lmao! That's a good one.

 

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

 

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.

 

Perseverance = key!

Thanks for sharing!

 

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!

 

Haha, that's a good take on it!

Thanks for sharing.

 

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.

 

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.

 

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

 

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

 

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.

 

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.

 
 

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!

 

FYI, there are few, if any, things you can do in C++ that you can't in C#. The latter also supports unmanaged objects, pointers, and unsafe operations. And I'd argue that languages are getting harder to learn with new syntax being added constantly. Same goes for programming frameworks (.NET). Throw in OOA/OOD or TDD, something few students are ever taught, and now you're way beyond simple. It was far easier learning BASIC back in the day.

 

Thanks for the comment! As the saying goes just because you can do something, doesn't mean that you should. C# is all about being high-level and having certain things managed for you, whereas the opposite is true for C++.

You can make an operating system using C# as more and more tooling is coming out to allow people to do such things, but personally I wouldn't.

To me, this boils down to the last statement I made:

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

 

I don't agree that you "lose control over a few things" with C#. It would be more accurate to say that it's harder to dork yourself with C#.

 

I do believe anyone can learn how to code and succeed with it, but it's hard to most of the people i guess (?) I don't know

 

Everyone is taught English here in the uk, most students are able to write an essay, but very few people are able to write a novel. This is the same as knowing how to program and learning to develop real systems/applications (the frameworks, design patterns the technology stack, team work, testing and version control all of a sudden it is like writing a novel)...

 

How do i know if i'm a real programmer then

When you get unplugged from the matrix (spooky). imo there is no such thing as a real programmer, you write code you're a programmer, it's just different levels of experience and expertise. Thank you both for the comments!

It really doesn't matter you do the best you can - you keep learning, improving and stop trying to measure everything...

 

I read your article. Looks very apt.
Well, I too, have my set of ideologies about programming that I have shared, seems quite similar to yours.
Maybe you can read my article.
Feel free to drop your views as well. :)

ohmyscript.com/2020/07/25/programm...

 

I can relate so much to the frustration part. Trying to solve those issues make me lose my confidence slowly and get me starting to question myself. But I could never quit because the feeling of solving the issues is so addicting and I always crave for more.

 

You need to have the mindset to learn new things daily on regular basis.

Also

while C++ does not do either meaning you need to code the 'low-level' stuff.

C++ has RAII.