How to Learn Programming - A Beginner's Guide

in utopian-io •  27 days ago

How to Learn Programming - A Beginner's Guide

header-image.jpg

In the last week, I have actively joined the Utopian.io Open Source Movement, and learned that a lot of people are seeking to join the Open Source world via Utopian.io. Among those Utopian enthusiasts, both experienced and complete beginner programmers co-exist. For a beginner programmer, it can be utterly daunting to research where to begin with Open Source programming. There is just so much information online: so many programming languages, so much terminology, frameworks, libraries, sub-communities... Where to start if you are an aspiring Open Source beginner-programmer?

Do you recognize this? Then this article is for you! Look at this post as your guide on becoming a true Open Source developer, by saving you hundreds of hours on trying to find your way. You won't learn how to program by just reading this article of course, but it will get you on the right track and up-to-speed in no time! I wish you a lot of success and fun learning how to become "An Open Source Programmer"!

The basics

Learning disclaimer

Please understand that learning how to program can be both fun and tough. Within about 10 hours you become familiar with programming concepts, at 100 hours invested you get proficient, after 1,000 hours you might be considered 'good' in programming, and after 10,000 hours you might be considered an 'expert' even. How good you like to become on your programming journey is therefore largely dependent on how much time you are willing to invest. Learning how to program is like learning any skill, there are no "short-cuts" (as of yet, who knows what AI will bring to the table within 25 years from now?).

Basic set-up

To begin coding, you of course need a code editor. Lots of code editors exist, but I recommend using either the Atom editor, or the Microsoft Visual Studio Code editor, or the Sublime Text editor. Depending on your type of computer Operating System (Windows, Mac OS, or Linux), different code editors exist, but the ones I just recommended have all kinds of nice tools embedded (such as syntax highlighting ), and are extendable via plugins / extensions to suit your very needs!

I advise beginner programmers to start their programming journey with web development, because the underlying techniques are widely applicable. Therefore, you also need to install a modern web browser such as Google Chrome, or FireFox Developer Edition or Safari (by default installed on a Mac).

This way, what you code inside your editor, you can look at within your browser! Your code doesn't even have to be online, it can run from just your own computer to begin with!

ldknvaw545cj7oqwitst.jpg

Step 1: Learn HTML5 and CSS3

HTML (short for Hypertext Markup Language) is the standard markup language for building web pages and web applications. And HTML5 is the fifth (and current) major version of HTML. HTML was first created / proposed by Tim Berners-Lee and therefore Tim Berners-Lee is regarded as the inventor of the web as we know it today. HTML is used both for structuring a web page and to hold the page content. Originally (HTML1) HTML was used to stylize a web page as well, but nowadays people use CSS as a complimenting language for styling a web page (choosing colors, fonts and all kind of lay-out settings). CSS is short for Cascading Style Sheets, and CSS3 is the third (and current) CSS version.

Why HTML and CSS first?

Why do I strongly advise you to begin with HTML5 and CSS3? The answer is twofold: -A- mastering HTML and CSS is relatively easy to accomplish and gives you an opportunity to get a job as a front-end developer all around the world, being surrounded by other developers to learn from for your programming journey, and -B- HTML and CSS both lack control flow_ which can be handled via more advanced programming languages discussed in the following steps (you can combine your HTML and CSS skills with new skills in languages such as JavaScript and PHP).

How to begin studying HTML and CSS?

There are two approaches to begin learning HTML and CSS. The first is to just experiment from scratch on your own computer: create a new folder on your computer Desktop and call it "website", and inside that "website"-folder you add one new folder ("images") and two files ("index.html" and "style.css"). Just open the entire "website"-folder inside your code editor. And then go to W3schools to learn the basics! Just try to create web page stuff using your "index.html" and "style.css" files! The second approach is to enter a (free) online course on HTML and CSS. You could try CodeCademy for free as an introductory course. There are numerous other online courses but I find CodeCademy very beginner-friendly.

wv1odrske6evaebkdraj.png

Step 2: Learn jQuery (the most famous JavaScript library)

If you've succeeded in "Step 1", your next programming goal would be learning jQuery. In short, both jQuery and JavaScript are used to manipulate the behaviour of your web pages. For example you can program a nice animation via jQuery / JavaScript when somebody clicks on a button, or a visual slider or it can load new data when available without needing to reload the page, or ... etc. etc. etc.

Why learn jQuery so soon?

Many advanced JavaScript developers seem to "frown upon" using jQuery, but I disagree: I even suggest learning jQuery before learning JavaScript, although jQuery is "just" a JavaScript library written in JavaScript itself. What I think is so cool about jQuery, is -1- its selector engine and -2- its abilities for DOM traversal & manipulation and its event handling. This is probably new terminology for you, but it will all make sense when you start working with jQuery. Via the jQuery selector engine you can easily target which HTML elements you want to manipulate: it works just like you learned about how CSS works!!!

Where to begin studying jQuery?

You could study the jQuery documentation over at https://jquery.com/, or take a jQuery beginner course over at CodeCademy, or learn via W3Schools, or use other resources. Just begin your jQuery journey and try to achieve something simple (like changing the backgroundColor of a button after clicking it); do not worry about whether or not your code is useful because while learning you will get better and better along the way. Baby steps...

he8ljrcbu22e1kddkrqm.jpg

Step 3: Experiment with (local) Wordpress development

If you've been working your way through steps 1 and 2, you've learned a lot already! But until now we've only talked about client side software development. Next up on your programming journey is a bit of server side programming, and for that, I recommend beginning with downloading and installing Wordpress. Wordpress currently is the most-used open source web content management engine (~25% of all websites in the world today were built using Wordpress).

WAMP / LAMP / MAMP

In order to install Wordpress on your local computer, you first need to locally install a webserver environment. Because Wordpress uses the language PHP on the server side, you need a running webserver and an instance of MySQL on your local computer. If your on Windows you can install WAMP, if you're on Linux try LAMP, and on a Mac you can use MAMP.

Wordpress Theme development

Once you have everything installed, you're ready to begin adding server side functionality to your test-website project! The HTML / CSS / jQuery document can now evolve into a Wordpress template and via combining multiple templates you end up having built your own Wordpress Theme. You can learn a lot about how Wordpress functions by studying various Wordpress Themes found online, furthermore you could install some Wordpress Plugins and study their code, and of course do study the Wordpress Codex containing all kinds of Wordpress technical documentation.

MySQL database

Without actually studying the MySQL API, by developing your own Wordpress Theme, you have in fact been interacting with the MySQL database! In this database, your website (test-) contents are now stored as Posts. You can observe and query this database using a tool like, for example, phpMyAdmin. There's a lot to learn about how to query MySQL, which is a Relational Database Management System!

xnvphozcjwzzbquywd0o.png

Step 4: Learn some more PHP

PHP is not just used by Wordpress, but it is a programming language on its own! PHP's most recent iteration is PHP7. PHP was originally created by Rasmus Lerdorf to quickly develop dynamic HTML. PHP may be regarded as a framework of itself. You can write PHP in multiple ways: it supports procedural programming and object-oriented programming for example (and imperative, functional, reflective). PHP is kind of like a huge toolbox with lots of different tools.

Nota bene: How much time you should spend at learning PHP is dependent of your programming goals. PHP became very popular around the year 2000 and onwards, yet it's (mostly) used for server side web development alone. If you plan on programming other types of Open Source software, learning PHP might not be the most future-proof language to dwell upon.

js copy.png

Step 5: Study client-side JavaScript (JS)

In "Step 2" we've talked about jQuery somewhat, and I mentioned jQuery was just a JavaScript library (lib) with some handy-dandy tools embedded. But we haven't talked about vanilla JavaScript development yet! The cool thing about JavaScript, which was first created by Brendan Eich, who by the way also co-founded Mozilla, is that it runs in your web browser! There is so much to say about JavaScript, it would be impossible to include it all in this blog post. At its core, you could just begin understanding JavaScript thinking about it as an interpreted language used to make web pages interactive.

Popular JavaScript libraries and frameworks

We talked about jQuery as being a beginner-friendly JavaScript library before, but in the last few years, especially after Google released its V8 engine, things began to really evolve very quickly in the JavaScript world. Lots of libraries and frameworks were developed on top of JavaScript, such as jQuery, ReactJS, AngularJS, VueJS... I could go on for ages just mentioning everything, it's mind-blowing actually how much is out there. And if you're a JS beginner, where to start? Please understand, if you've come this far, you will have also gathered enough insights which libraries and frameworks might suit your needs best. Some of it is also just a matter of preference.

GSAP - GreenSock Animation Platform

I want to dedicate a special bit of extra attention to GSAP - GreenSock Animation Platform. Although other tools exit for website animations, GSAP is relatively unknown yet in a league of their own. If you want your programming journey to lean towards designing and developing animations, GSAP is the tool for you!

nwmrqlkfvj9j5lnn9x9n.png

Step 6: Study server-side JavaScript (nodeJS)

Learning JavaScript is not just interesting for front-end developers, but since a couple of years also for back-end developers, or both: full stack developers. Because now, ever since Ryan Dahl created NodeJS, it's possible to not just use JavaScript as a client-side programming language, but on the server as well! NodeJS was also built on the V8 engine and uses a non-blocking and event-driven I/O model. It's "just" JavaScript, but using asynchronous code via callbacks, although using Promises and _async/await a smart JS programmer can avoid "callback hell".

NPM

NodeJS features NPM which is a package manager / ecosystem containing all sorts of NodeJS Open Source libraries. What's in there, if you were unaware, is also mind-blowing. Tools like browserify, Grunt, Gulp, Cordova... the list just goes on and on and on!

Nota bene: to conclude on both client-side and server-side JS development, there is a lot of momentum regarding JavaScript. If you are (relatively) new to programming, then mastering JavaScript seems to be a good choice!

qysmxlk2xlvjdyxtrv2a.png

Step 7: Register at, and start using Github.com

If you want to be an Open Source web developer, you need to know and use GitHub. It's seen best as both a development platform and a software code hosting environment, where almost all Open Source Software code can be found. You can just use the code found on GitHub, but as an aspiring Open Source Software developer of course you also like to contribute! And now - since @elear founded Utopian.io - you can even get rewarded for contributing to GitHub (= collaborating on Open Source projects together with other developers) and letting the Utopians know about it!

How does GitHub work?

To test things out, you can first create a repository, which is used to organize one single project. You might want to add a README file, with information about the project. Next create a Branch. Branching is a way to work on multiple versions of a code repository. The default is called a "master branch". If you changed / upgrade your code, you need to commit changes, and add a short description explaining what the change is about. Then, open a Pull request: you’re proposing your changes and requesting that someone reviews and pulls your contribution, and merges your contribution into their branch. (While just testing, you can merge your own pull request of course.)

Did you do something useful on GitHub by successfully adding a contribution? Wowzers! Then you just made yourself a real Open Source Dev!!!.

Step 8: Deploy your Open Source project online

If you've created a very promising new Open Source project, you of course want it to succeed! You need your own website for that as well (which of course by then is just no problemo for you to create!), and you could host your Open Source project website at numerous hosts. One hosting platform I'd like to mention here is Heroku. Heroku is a cloud platform using managed containers (Docker?) for deploying modern web applications. You as the project developer deploy your application, which then runs inside a container called a Dyno and you can manage and upscale your hosting environment as needed over time! So (almost) for free to begin hosting your app, and upscalable once it becomes popular.

other_languages.png

Further programming journey steps

You can go any type of route at programming. I just tried to guide aspiring Open Source developers on a safe path used by many, many experienced Open Source developers around the globe. I haven't in-depth covered other modern interesting programming languages, such as GoLang, Elixir, Python, but rest-assured: those are well-woth checking out as well! In due time though: baby steps....

Did you like this blog post? Would you like me to continue these lengthy posts (because they take me quite some time to write actually!). What are you planning on developing first using your new Programming SuperPowers? Let me know, via the comments, or over at steemit.chat, or of course over at the Utopian Discord Chatserver! I'm @scipio over there as well! Cheers and see you! :-)



Posted on Utopian.io - Rewarding Open Source Contributors

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  trending

Very good article, thorough and well written. I mostly agree with you, especially for those willing to develop Steem Apps. I would change a bit the order for learning the back end but great tutorial, really!

·

Thanks! Which re-ordering do you suggest for learning backend dev?

I been curious why the learning curve differs in individuals.. why is it some people can become a programmer so fast and while it takes others very long just to understand the basics.. what kinda pre-requisites makes the difference?

·

Why is Messi better at soccer than me? (just a little bit by the way..)
Talent?

·

Thank you very very much! More visibility means more people can benefit! This post was intended for beginner programmers not to waste time studying the wrong languages / tooling environments, yet to put them on the right track right away.

PS: did you also see my latest post How-to solve SPAM and Democratize Steem: Introducing UserAuthority ? If not, please consider taking a look at it. This post "How to learn programming" is helpful to beginner programmers, but my "UserAuthority" post needs as much visibility as possible, because I really believe the Steem ecosystem needs my "UserAuthority" algorithm at the core of voting!

·
·
PS: did you also see my latest post How-to solve SPAM and Democratize Steem: Introducing UserAuthority ?

Yes, very interesting, I upvoted that, too. Normally I don't resteem a lot, because I like my blog to stay overseeable (it's kind of a storage of my memories and ideas). I can make an exception this time though and resteem the post as well, as Steemit needs some good ideas ...

In case you are interested to read my ideas about 'diminishing returns', you may check this article.

·
·
·

Thx for resteeming!!!!

I've read your article Ideas for more justice on Steemit and I agree on the self-upvoting problem and also understand people would not like that idea: they simply feel it's their own right to self-upvote, and that principle follows from the ownership model / share emission system steem runs on. I don't per se think self-upvoting is the most profitable endeavor / growth-strategy btw, but that's another topic ;-)

On-topic: my UserAuthority solution exactly solves your self-upvote problem! :-)
Like this (via HF22, like I proposed at the bottom of my post:

Proposal for HF22: implement UA to curate monetary rewards (author / curation):
upvote reward = UA * SP
=> that effectively combats SPAM-rewards , and limits the use of self-upvoting

·
·
·
·

If returns are diminishing, everybody still has the right to upvote himself. It is just less attractive if he is doing that again and again. It is also less attractive if he is upvoting his friends (or his multiple accounts) again and again ...

But your idea is interesting, too. The problem is if anybody is really aware of these problems and willing to solve them ...

Concerning the effectiveness of self-voting we may have different opinions. I think as soon as you have some steem power it is so easy just to write 10 minimalistic posts per day and then upvote them yourself (or with your other accounts): easy money in the short term, but bad for the Steem price in the long run ...

·
·
·
·
·

upvote reward = UA * SP effectively solves the self-upvote problem, all by itself! This mechanism cannot be tricked!

  • if a self-upvoter is publicly identified by the UA mechanism, people simply need to unfollow that user
  • the UA probability distribution diminishes the self-upvote powers automatically
  • in case of multi-upvote-bots and SP delegation by the self-upvoter (look below), those bots would be powerless because nobody would follow them, hence an extremely low amount of UA.

PS: your solution (diminishing multi-self upvotes) could be circumvented via delegating SP to self-owned upvote bot-accounts. Suppose user X, a wealthy (as in: owns much SP) self-upvoter, would delegate 10% of SP to 10 self-owned upvote bots (10 * 10% = 100% of his/her SP). Then it wouldn't be self-upvoting anymore, and each bot would only need to upvote once per post.

·
·
·
·
·
·

Sorry, I have to leave, therefore for now a short reply only: yes, you are right, by delegating Steem power my idea can be circumvented. Actually I am against delegating Steem power, too! :) Too often people who got delegated some Steem power just used it to sell their votes ... that is against the idea of seeking and rewarding good quality content.

I will read your post more thoroughly when I am back home again.

·
·
·
·
·
·
·

I am all for delegating SP!

  • It is the only way for the Utopian IO movement ( website, steem account ) to be able to lift-off. (Utopian is a new movement to reward Open Source contributors around the globe to get rewarded for their contributions with Steem. The last week it received 3.7 million delegated SP. I'm actively involved myself.)
  • I got delegated some SP personally from a friend (@cnts) (this is just day 26 on Steemit for me, and otherwise I wouldn't have "power" to upvote above $0.00!)

.. so a lot of good can be done with delegating SP!

Please do take your time to re-read my article How-to solve SPAM and Democratize Steem: Introducing UserAuthority because "UserAuthority", really can solve a lot of Steem problems once implemented via HFs.

See ya!

Nice job!

hmm... been using notepad++. been thinking of exploring sublime but looks like there is more choice here.

·

Oooohh! Notepad++! Sweet memories for me! :-) Ever since I became an Apple-adept I haven't used notepad++ but it was indeed quite nice (back in the days). SublimeText isn't truly OpenSource / Free but "EvaluationWare", I think? You could use it indefinitely but a "nagging screen" asking you to buy it keeps popping up once in a while.

Atom IO editor is built on top of "Electron", which is built on top of "Chromium" (which is the engine of webbrowser Chrome). Atom IO is very nice to work with, very user-friendly, and extendable. But, it's kind of slow (for bigger projects). Also built using "Electron" is Microsoft Visual Studio Code. That's free to use as well, yet is very fast (it has a somewhat different user interface).

So, although I'm not a Microsoft fan per se (I'm not at all actually :-) ), Microsoft Visual Studio Code is maybe their best product ever.

·
·

thanks for the info.
i had a quick look at sublime quite some time back and hesitated because of evaluation too.

Use a mirkocontroller to learn coding 😏 it's way more fun.
I made a post about programing an arduino like microcontroller. I also plan to post some basic tutorials for microcontroller programing!😄

·

Good for you! Please do so! And drop me a comment somewhere (just reply to one of my latest comments somewhere to notify me) once you have posted a tutorial, I will have a look then! Cheers!

...epic novel!.. super useful... up√oted & promoTed via @cnts

·

I just love that gif @cnts :-) It's like "Woaaahhhh! I once was blind but now I see the Promised Land!" :P

Great Post, thank you for sharing! greetings from italy!

·

Ciao! Mille grazie!

excellent post

·

Thx sweetie! And thank you for your resteem as well!!

Hey @scipio I am @utopian-io. I have just super-voted you at 35% Power!

Suggestions https://utopian.io/rules

  • Utopian has detected 1 bot votes. I am the only bot you should love!!

Achievements

  • Much more informative than others in this category. Good job!
  • Votes on this contribution are going well. Nice!
  • You are having more votes than average for this category. Nice!
  • You have less than 500 followers. Just gave you a gift ;)
  • You just got more votes than your total number of followers. Rock Star!
  • You are generating more rewards than average for this category. Super!
  • You have just unlocked 6 achievements. Yeah!
    Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x
·

Thank you Utopian-IO! Bleep! Bleep!

Useful information, a few languages I had never heard about. Thanks!

·

Golang and Elixir are rocking too!

Hi @scipio, nice write up, if there is anything in this article that can be criticized is that it is packed with information.
As a starting point i completely agree with the selection you did :)
Come on guys and ladies, open source movement always nees another hand :)
kind regards
Jan

·

Thx Jan! I did my best to fully-pack as much Open Source / developer info into a guide-format as possible! Glad you like the article!

This was fantastic. Well written and thorough.

My own programming journey had been very on/off since my teens. Sadly I had a few really shitty programming teachers in middle school and high school, put I've persevered and managed to pick up a decent amount.

I'm familiar with a lot of the languages you mentioned, but haven't touched server side stuff, yet (I'll admit it, it's intimidating!).

You're post has reminded me of just how much learning and effort I have ahead of me.... Namely, all of it. Lol.

·

Thank you for your in-depth comment as well! Appreciated!!
Regarding the "server-side stuff" being intimidating, you're referring to a PHP, NodeJS, or Python, or Golang, or Elixir back-end, right? The level of complexity of that can indeed be intimidating at first. (Well, thb, PHP being the exception as it is quite beginner-friendly I think.) The order I mentioned (steps 1 -> 2 -> 3 etc.) correlates to the associated learning curve: if you choose to follow the JavaScript route, beginning with jQuery (easy, instant results, gets you motivated), then vanilla JS, then some barebones NodeJS (pro tip: read up on the new await/async feature, it let's you return values asynchronously which is syntactically akin to "regular JS"), and only then look into using one or more frameworks for production-level applications). I addressed especially the programming learning curve in this guide / tutorial!

Wow - great stuff! Very useful. I'm trying to get into coding and will definitely use your information.

·

Thx! Be sure to write me a comment or send me a DM as soon as I can take a look at your first programming achievement! Go get 'em! ;-)

I just had a conversation with @stoodkev about this yesterday! I want to learn programming to develop for Steem and Utopian. Luckily I am already familiar with html and CSS so I can jump directly to jQuery. Would you suggest doing a video course? I usually like doing that with something professional on Udemy.com.

I would like to skip as much boring stuff as possible but that is probably difficult to dtermine what is important and what is not when you just begin.

Please continue this with more posts about various topics leading to be able to access the Steem blockchain.

Resteemed!

scipio.png

·

Thx! For your nice words and the cool "steemit @scipio approved" banner! I like it!

If you're a visual learner, learning via video tutorials is pretty good actually, because the video tutor is "showing you" what he does and explaining along the way. So yes, that might be a good approach as well.

But you learn most from simply trying to code.
For example, on php, just try to set-up a MAMP server and print the following statement inside your first "index.php" file (not .html in this case):

<?php echo "Hello I'm @flauwy-de at Steemit!"; ?>

That's something extremely simple of course, but you've built it, and that's an achievement to expand upon! Have a go at it! And greetings back to @stoodkev if you talk to him again! Cheers! :-)

Wow this is a fantastic post and indeed a great road map for anyone contemplating getting into programming. My personal suggestion for future post topic (or post series more likely) that I would REALLY love to see is a beginner friendly guide to programming bots for Steemit with a few starting examples and discussion of how to customize for different purposes. Keep up the awesome work! You are a champ!

Much love - Carl

·

Thx Carl!!! Much appreciated!
Actually I am already diving into bot programming topics, and I am indeed planning on bloggin about those as well. Stay tuned! :-)

Nice article. Just keep in mind that jquery is not your weapon of choice nowadays for website creation. Choose a good framework and work with it unless you are just building a proof of concept!

·

True, jQuery as an animation tool is surpassed by GSAP by factor 1,000 or so, using ES6 jQuery's selector features are somewhat less useful as they were before, and correct, frameworks like Angular and React are far better choices as far as I'm concerned as well. But I mentioned jQuery as an entrance-point for beginners, that's the main group the article is intended for.

Just to let you know: I resteemed with my main account. ;)

·

Thanks once again! :-)

just what I needed ;)

·

I thought so already over at our Discord chat Loci! :-)

this is great @scipio it actually outline the steps to follow when studying programming presently studying css.

·

Very good @valchiz ! Regarding CSS, the most important things to learn are:

  • how to properly use selectors (which target elements in the HTML DOM)
  • how to structure your CSS files
    The CSS properties and values of those properties you can look up, and you'll remember the most-used ones after a while!

Wow. I'm a super beginner and I've been trying to gather resources together so I can start my journey down the programming path. I'm super overworked at the moment, so even that part has been slow going.

This ultra dense guide is exactly what I needed to know about where I might look to start and why I might start there, all in one convenient place and from a trustworthy community member (Steemit).

I'm a lifelong Steemit community member so I will be using this guide specifically to roadmap my journey. Look forward to blogging about it too :)

Thanks again!

·

Glad you liked it! Today I decided to write another blog post to statistically detect spam and bot accounts from the Steem follower graph, enjoy :P

PS: never mind the terminology, try to build what I wrote in Excel! It's good fun!

Hi @scipio!
I want become developer! article you fascinating i will learn of tutorial that you give down here! this really amazing you help anybody else for study become developer! i very like posts you's! i please you also can teaching me for become a developer! greeting!
‌Resteemed !

·

Thank you @yandot for your enthusiastic words! :-)
Please try to become a developer yourself! My article was meant exactly for people like you! Go get 'em!

And thanks for the resteem!!!

·
·

thanks article's most helpful i for learn beginning in become developer like you!
i want every one can read article the essentials like this so that i resteem to follower me!!

·
·
·

I didn't learn programming in this order, but still this is a great guide. programming is one of those those where you have so many choices that you often have no idea what to learn next. So guides such as these are always useful

·

Thanks for your compliment! In which order have you learned how to program?

Wow. Sorry I took off from our conversation in Discord. I had to take care of my bleeding cerebrum. LOL

Kidding aside, this is seriously awesome! I just might consider learning about programming . Thank you for the hard work you put up in this post and for sharing this to me. You're amazing, @scipio!

·

Thank you for your kind words! Amazing that I got you inspired to learn programming! Go get 'em! :-)

Thank you for this, I got about 1/4 through and got caught reading it at work so I have to come back to it later :(

·

Aahh! Glad you like it! Please do come back and absorb it all! :-)

·
·

Made it back! You have done an excellent job providing a roadmap and resources for anyone who wants to get started coding.

·
·
·

Wonderful! I did do my best, didn't I? ;-)
I'll write follow-up posts though, follow along!

I'm also into programming but the first thing they taught us was C Language. They say it's the most basic. Haven't tried HTML and CSS :(

·

C ? The most basic? No! It's not basic at all! Please just follow this guide, unless you're up for some serious hardcore beginner learning using C (or C++, C#, objective-C... all tough!) ;-)

·
·

I know right? My professors before always say that it's the basic, but when you do the programming it's very complicated. I haven't touched JavaScript before so maybe I'll look into your post when I got the time to start learning again.

By the way, I resteemed your post for future references.
Thank you very much!

·
·
·

C is regarded "low level" code (as in: close to the "metal", the hardware). Could that be perhaps what the school professor meant with "basic"?

·
·
·
·

I don't know about that. I just don't know where they draw the line of the most basic and the advance. But C is considered a high-level language, right? Low level ones are machine languages, correct me if I'm wrong though :)

·
·
·
·
·

C is regarded "low level" code (as in: close to the "metal", the hardware). ^^^ ;-) PHP for example is more high-level since it was built on top of C (the PHP interpreter, which is interpreting your PHP scripts).

·
·
·
·
·
·

Ahhh..
I see.
Thank you for a good reference. ^^ :)

·
·
·
·
·
·
·

I like your post, great presentation and quality @scipio , I'm so excited to learn programming and you're showing me some important steps Thank you.
@hatimbenya

·

Well good! Happy learning then! Follow along! :-)

·
·

I simply love your articles so keep sharing for more learning, Thank you @scipio

Great info :)

·

Thank you! :-)

This was written with passion, very well done.
Linked it to a friend of mine who wants to get started but does not had a starting point.

·

Thank you very much for recognizing I wrote this with passion, because I DID!

this paper is using , I studying in java and c++ also VHDL,sometimes I use online editor and I uploaded my codes project to github.Thanks

·

well great! Those are all environments I haven't mentioned, but nonetheless useful! Keep it up with programming!!

Congratulations @scipio! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes
Award for the total payout received

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

·
·
·

Notifications have been disabled. Sorry if I bothered you.
To reactivate notifications, drop me a comment with the word NOTIFY

·
·
·

NOTIFY

·
·
·

I decided I kind of like your notifications after all... Bleep! Bleep!

whats up @Scipio ! great job on this one !! Lets keep the ideas flowing

·

I will! Thx! BTW, it's @scipio :P

·
·

yupp, I know :) ... got some ideas in the Pipeline

·
·
·

Do tell me over at the Discord chat and tell @cnts I said Hi!
Upvoted! Via @scipio! :]

Im so excited about learning programming but i found it difficult because i didn't know from where to start so this post really shown me the road
Thanks my friend for this great post @scipio

·

you're welcome! Glad you liked it! And let me know about your forthcoming programming endeavors!

·
·

Im going to start learning HTML and CSS @scipio , I have two lessons about them
Now i found the road and i hope to understand them easily

·
·
·

To get familiar with html / css takes about 10-30 hours, but to get really good at it, much more time is needed! Two lessons won't be enough, probably...

·
·
·
·

Thanks for the advice @scipio , i will get more lessons so i get familiar with html and css because they are the basics of programming for sure

excellent post

·

thank you! glad you liked it!

Awesome effort in this post! Totally valuable! Thanks! Upvoted, followed and @originalworks
@dakini5d

·

The @OriginalWorks bot has determined this post by @scipio to be original material and upvoted(1.5%) it!

ezgif.com-resize.gif

To call @OriginalWorks, simply reply to any post with @originalworks or !originalworks in your message!

·
·
·

Thank you! Glad you liked it! :-)

Very useful information. Thanks for sharing.

@jorgevw

·

Glad you found it useful Jorge!

wow.very nice

·

If you can prove you're not following me, via a screendump, I'll give you an upvote, okay?
Just reply with your proof in a new comment!

·
·

please upvote me,,,
and back my power
i will never mistake
proof is given belllow

·
·
·

Okay, nice work: upvoted.

PS: this was just a joke of mine, of course you can follow me. But make sure to read posts, and if you comment, it has to be relevant and on-topic. Okidoki? That's why you have such a low reputation now (13), because you get downvoted in stead of upvoted by powerful people. Just read, interact, be nice, ask good questions, show some interest.

Cheers...

Great article. I always want to learn new things and this article gave me lot of information about how to do programming. Thanks

·

Thx for the banner! ;-)

This is too much for my brain if there ever was in my skull. Anad if there ver was, it would drool out from my nose.

·

Awww, no! That was not my intention! It's not meant to study all that in one go! But as a guide, to come back to many times on your programming journey!

I will definitely be using this information, thank you for the post!

·

Glad you liked it! Please send me your first html website for review! Just reply to me somewhere, ok!

@scipio.
thanks so much, I started to code a bit, it's quite some fun. I tried to add an external .css link into my .html document via a link in the head section. I put in the name, but it doesn't work. i don't really know how to create a correct link, cause it also doesn't work if I put in the whole name with desktop\User... into it. What am I doing wrong?

Great content by the way. thanks so much :D

·

You place 2 files (index.html and style.css) in one folder (website/).
In index.html, in the <head> section, you add the <link> element and add style.css as the value of attribute href=

Like so:

<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet" href="style.css">
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    
</body>
</html>

Success!

PS: I wish I had more time but I'm sorry that I can't help you out on every question via the comments!

·
·

no problem, thanks a lot. I tried this but it didn't work yet. Ill try again. ;)

·
·
·

Very useful info! Please keep posting more how to guides like this, very interesting!

·

Glad you liked it!

Python or C which is good for beginners?

·

Python is actually quite beginner-friendly (yet it requires proper indentation, which can lead to strange bugs for beginners). C is not beginner friendly. Have you read my post anyway?

·
·

Not fully...my unviversity focuses on C, thats why i asked.

·
·
·

OK. In my programming-journey-roadmap, studying C is "step 9, Further programming journey steps".

I would add to your guide the Bootstrap, Express and Agile.
I really love nodejs framework i think was a huge step forward in the programing to the web.

·

I had to make choices! ;-) I'll blog about them in future posts, ok?

Hey, that's great guide! I'm sure many people - including me will find it handy. As my advice also - it's very important to keep coding every day- even if you don't have time, just spend an hour or 30 minutes to do some changes, write something, think of something. Programming is not something that you can do efficiently for long hours though, so you it's even better to spend a few hours/day to maximize the proficiency.

·

True! Practice makes perfect. Also, if you stop coding for a longer period, let's say a year or so, you lose a lot of skills you had before, and although you can get them back quicker the second time around, it still requires quite some effort to get to the same level you had before. (Been there myself...)

Very Useful Article!! Thnx for Sharing, and Keep sharing Such Great Articles!!

·

Thx! I will do so! Keep on reading them! And resteeming them (for more visibility) also helps if you like my posts!

Your guide is really useful for novices) Once I'be tried to learn HTML and CSS. It seems so simple, but you should love what you do. It is so hard to learn something which doesn't inspire you, isn't it?))

·

HTML and CSS can also be daunting at first, but if you persist in trying to master it, you can make beautiful things with it!

·
·

yeah, I know, it can be very interesting and can bring you enough money)))

·
·
·

Also true! You can become a front-end developer by mastering HTML / CSS / JavaScript. Please, have a go at learning how to program once again! You'll love it!

·
·
·

And you're lucky, you can be both front end AND backend since nodeJS is a JavaScript server!!

·
·
·
·

Jules, she was referring to HTML / CSS being hard ;-) I added the JS part for her referring to front-end dev jobs ;-)

hi, i am a website designer, i can help you,
http://didarulselim.ml
my portfolio site, if need website order talk to me

·

Hi, thx but no-thx. I don't need help on how to build / design websites.
Nice try though!

quality content
resteemed

·

Thank you! Resteeming always helps, because it improves visibility!

This is a good road map for any newbie to programming. HTML CSS and a little JAVA are pretty instant rewards in terms of you can knock up a crude but functional website in a few minutes.

·

Thanks for reading it! I did mention JavaScript but not Java in my roadmap though ;-)

·
·

Showing my age lol I first used 'Java Beans' in the late 1980's. Javascript hadn't been invented then :)

·
·
·

That's just a 30 years old tech-stack you've been using all along! You might want to check out 'the new cool' I presented here then! ;-)

·
·
·
·

I've been teaching comp/sci and ICT for the last 30 years. That's how I could state that this is a good training plan.
You may be surprised to know, just how little has changed in programming in those 30 years.IMG_20171115_161954.jpg

·
·
·
·
·

Upvoted for the smile alone even!

·
·
·
·
·
·

Thanks @scipio it's my new selfie smile ;)

Thanks for your post! Resteemed!

I've been wanting to get into programming. I plan on going through this again when I am more awake. Baby steps lol

·

Haha, yes, being awake helps a lot when learning how to code! But please keep in mind, you can't learn coding in a couple of days. You really need to stick to the order of subjects, like I proposed: begin with html and css, that's rewarding enough if you create something nice, and you can proceed to more advanced topics afterwards.

·
·

Yeah that’s what I meant! I’m going to start from the beginning of your post so I have a gueideline. I have limited knowledge when it comes to coding so I never really knew where to start. I have a graphic arts degree and I’ve taught myself music production through YouTube so hopefully it should be for me easy to stay motivated

GitHub is a must for every programmer! It's helped me improve soo much! Great post!

·

Well, in order to begin using / learning from GitHub, I think just a tiny amount of basic knowledge is needed. Contributing to GitHub is (in my article) in step 7, but reading code already at GitHub, could be done at step 3 / 4 or something...

Very useful article , upvote

Very useful information

·

Glad you liked it! Which JavaScript library / framework you liked the best?