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

Oldest comments (55)

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
 
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
 
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
 
alainvanhout profile image
Alain Van Hout

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.

Collapse
 
goldennoodles profile image
Rus Kuzmin

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

Thanks very much for sharing Alain.

Collapse
 
derekjhopper profile image
Derek Hopper

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.

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
 
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
 
diskcrasher profile image
Mike • Edited

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.

Collapse
 
goldennoodles profile image
Rus Kuzmin

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

Collapse
 
diskcrasher profile image
Mike

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

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

Collapse
 
s4turniidae profile image
Pandas as pd

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

Collapse
 
cyberdyme profile image
cyberdyme • Edited

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

Collapse
 
s4turniidae profile image
Pandas as pd

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

Thread Thread
 
goldennoodles profile image
Rus Kuzmin

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!

Thread Thread
 
cyberdyme profile image
cyberdyme

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

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