DEV Community

Cover image for How to start down the path of the programmer?

How to start down the path of the programmer?

Adnan Rahić on June 06, 2017

This post was first published on Steemit. You can take a look at it here. One does not simply become a programmer. The journey is long ...
Collapse
 
nyibbang profile image
Vincent Palancher

I don't believe that JavaScript is a good language to start with. It has many concepts that aren't universal and constraints that a beginner should not have to bother about. It can have a complex workflow because of closures and lambdas. Why not start with Python or Ruby or even Pascal ?

The questions you present about "general software engineering" have IMHO not much to do with general programming, instead they are very specific to web programming. They are important to understand if you want to code in JavaScript which is why I don't think it is an easy language for a beginner.

Collapse
 
adnanrahic profile image
Adnan Rahić

That's where the beauty lies. Core programming concepts are the same, no matter the language. Algorithms will always be algorithms. Have in mind I wrote the article highly opinionated. It's perfectly fine if you do not agree with me.

JavaScipt has been chosen by universities to be the programming language for their 101 courses. People much smarter than me have made that choice. Closures and lambdas are present in every higher level language but only used if you really need them. Beginners don't even have to know they exist until they start facing difficult enough problems to urge them to explore.

To be honest, I'm quite sad not to be more proficient with Python or C++. Both are awesome languages. If you ever write something about them, I'll be sure to read it.

Cheers man, hope you liked the article. :)

Collapse
 
nyibbang profile image
Vincent Palancher

I guess I have a vision of JavaScript that might be flawed, I wasn't aware universities used it to teach students. I personally learned with PHP (which was fine to learn, but I wouldn't advise it) then was teached Pascal. C is fine too, but I would not consider C++ as a language for beginners though.

I liked your article, we need to help beginners get into the field and learn how to make good software :) What you explain is accurate and well presented. My previous comment on the language was unimportant because I believe the choice of a language is a matter of taste.

Collapse
 
walker profile image
Walker Harrison

I think beyond the actual form and function of code, understanding the software engineering process and how code gets submitted/reviewed/modified/etc. is important and something that will be easier the earlier your internalize it

Collapse
 
adnanrahic profile image
Adnan Rahić

Agreed. Learning to use Git plays a major role in the process. Of course, along with code reviews, if you're one of the lucky beginners who manage to land an internship.

Collapse
 
adnanrahic profile image
Adnan Rahić

It's incredibly useful, yes! That's something I do on a regular basis. Also, using CLI tools can be very useful to get an understanding of how to structure your application. I'll have to add this to my next article. Thank you, hope you enjoyed the read.

Collapse
 
xiaohuoni profile image
xiaohuoni

I am also a self-taught programmer

Collapse
 
andrei_17 profile image
Andrei-

I think javascript is the worse language to start programming with. Javascript was a workaround scripting language originally designed to enhance html pages. It has evolved a little since but never managed to wash out the "shit language" label.
It's not strongly typed, it always looks like spaghetti code and is harder to read, more so for the beginner developer.
To make it look somewhat nice you have to use typescript, but this adds one more abstraction layer, unnecessary for the beginner developer.

If you want to learn programming you start with a nice strongly typed OOP language like C#, Java or even C++ for the brave soul. These are good languages to grasp the OOP concepts.

In contrast Javascript is horrible for that purpose. Javascript is not a class-based object-oriented language , but rather a prototypal one. Wait, whaaat? Just try to make some inheritance/polymorphism with vanilla js.
I know it looks easy and fast to copy-paste from stackoverflow but popular does not equal quality.

Collapse
 
adnanrahic profile image
Adnan Rahić

I started out with C#, and I love the language. It's amazing. But, after one semester of having it in college, I had no idea about anything, at all. OOP was Chinese to me. It wasn't until using it for a year and also finishing a Microsoft MTA course I was ready to use it properly.

That's the point I want to make. OOP should not be step 1. JavaScript can be written just fine with almost no OOP at all. Just the basic concepts of constructors and "sharing code" between objects with prototypes are more than fine for the beginner. Because those things are the great majority of things we use.

My views on this are biased as I use JavaScript daily and teach courses on it. But, I seem to not be alone in this, as Stanford has replaced Java with JavaScript for their introduction to Computer Science course.

Anyway, I hope you liked the article. Cheers! :)