DEV Community

Cover image for Programming is easy!

Programming is easy!

Rus Kuzmin on June 28, 2020

Gottcha! But seriously, there is still this misconception that programming is easy and that anyone can do it. Although, I do believe that anyone ca...
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
 
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
 
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
 
prahladyeri profile image
Prahlad Yeri • Edited

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.

Collapse
 
goldennoodles profile image
Rus Kuzmin

Exactly this, perception and the way you 'see' things is everything?
A bug? Or an adventure?

Thanks for sharing, glad you enjoyed!

Collapse
 
jrecas profile image
JReca

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.

Collapse
 
goldennoodles profile image
Rus Kuzmin

<3 x 1000

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
 
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
 
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
 
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
 
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
 
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
 
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
 
shravan20 profile image
Shravan Kumar B

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

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
 
rinsama77 profile image
imrinzzzz

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.

Collapse
 
delta456 profile image
Swastik Baranwal

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.

Collapse
 
spiritupbro profile image
spiritupbro

yes