How to Start Programming and the Best Educational Sites. Sharing My Own Experience

in #programming8 years ago (edited)

Programming becomes more and more popular. Many people want to try themselves in this interesting work and if they reach some heights - they make good money. But the most difficult is to start programming. In my today's article, I want to tell you how to do this, will share useful resources and my own experience. I'm in programming for more than 7 years and walked the path from programming newbie till head of R&D department in fast-growing startup, thus I hope this material will be useful for you.

enter image description here

How to start learning programming

There are several ways to learn new material in this sphere. But the most common are such methods:

  • Specialized courses. They cost much less than the personal tutor
    lessons and many employers positively respond to the presence of
    various certificates from computer academies.

  • Free remote courses. There are a lot of services, on the Internet
    with the help of which, you can watch the lectures at Oxford, Harvard
    and other famous universities of the world, as well as to train

  • Self-learning. Start learning the basics with reading, do not go deep
    into the theory and practice a lot as only in the process of creation
    of the program, you will acquire the necessary skills.

After selecting the appropriate option you want to learn, you must determine the subject area, because programming is a fairly wide range of different branches.

How to choose the right area?

enter image description here

The choice of programming language depends on the type of software that you want to create in the future:

  • Desktop programs. This type of software is designed for personal
    computers (different players, converters, word processors and so on).

  • Anti-virus software (software for removing viruses and spyware).

  • Applications for smartphones and tablets. The most demanded area of
    modern programming. You need to know different languages for
    programming in different operating systems.

  • The game software for personal computers. To write it you need to
    have knowledge of the construction of three-dimensional graphics
    elements.

  • Online Games. Quite a popular type of software nowadays.

  • Work with web technologies and the creation of sites. It is very easy to
    learn, because the logic of writing sites and scripts is quite simple
    to understand. Here you can become front-end, back-end or full-stack developer. I personally prefer to work with a backend.

Which language to choose - either low- or high-level?

It is believed that all programming languages are divided into high-level and low-level.

The low-level code could be easier understood by the computer, but its writing is time-consuming and requires more knowledge in the subject area. Such languages (eg, assembler) are used for writing software for digital ICs and microcontrollers. They are not very easy to learn.

enter image description here

High-level languages are much easier to use because they use the built-in libraries for simplifying and rendering the code. Most modern software is written using high-level languages such as C++.

Creating a Mobile Application

The process of creating mobile software allows programmers to work with the latest tools. Select the platform on which you would work:

  • Google Play. Store of applications for the "Android" operating
    system. This OS has the largest user market share. Java language and
    C / C ++ are used to develop applications and games. Instant
    messengers applications, clients of social networking, cloud storage
    game have got the most popularity now.

enter image description here

  • App Store. Another profitable area for development (language -
    Objective-C). The process of creating software for Apple's devices
    requires pre-development environment called Xcode. The next step is
    to study the Objective-C.

Programming in Java

Most professional designers recommend starting learning to program with the Java language. It is easy to learn and at the same time is widely used in web development.

enter image description here

  • Learn the basic elements of the code (the declaration of variables,
    conditions, loops, and so on).

  • Regularly visit such online services as HourOfCode. They help
    visualize the written code that will help to better understand the
    process of development.

  • Be aware of the latest versions of Java and try to use only the
    latest frameworks.

WEB programming

Web-programming is really relevant today as it is very hard to make the site visually beautiful, and fill it with all the necessary functionality - not every professional could handle it.

enter image description here

Before you begin a full WEB development process you should learn Java/Python, PHP, MySQL, HTML, CSS.

• Java - used for writing of tools for websites.
• PHP - a language for creating sites with personal pages. It has the structure of a script. The leading language in the creation of today's popular dynamic websites.
• MySQL - is widely used in the creation of Web sites, which require storage of large volumes of grouped data.
• HTML - is a markup language used to write the base of web pages ( building blocks, the distribution of text and paragraphs, and so on).
• CSS - Cascading Style Sheets. It can only be used in conjunction with HTML to make the style markup language and appearance.

Creating applications for Windows operating system

For the development of these programs, you will need to learn the C # language. Free service from the company "Microsoft" named as Virtual Academy will allow you to learn all the features of the language and practice writing simple applications.

enter image description here

According to the new "Microsoft" policy, all applications are laid out in the shop, so you can
gain access to the monetization of your project.

You can create a desktop program, variety of anti-virus software and even gaming software - you only need to choose the direction you like.

enter image description here

Useful online services to study basic programming principles:

Learn to code with me - this site is a Laurence Bradford blog, that I personally love. Here she gives now only amazing tips on how to start programming (basically web) but also recommends different tools that will help you to improve your productivity. Another thing I like here is that she teach you on hot to motivate yourself and how to behave in order to promote yourself to find the job of your dream. Most articles and videos are absolutely free there and help you to become a good programmer. And she is a girl who is professional web developer, can you believe?

Coursera - a project in the field of mass online programming education in the form of a set of free online courses, founded by professors of computer science at Stanford University. I highly recommend you to check courses at this website as they are mostly free and extremely useful, published by professors of world leading universities. Here I started to learn Python programming (check this course) and created RiceRocks - my first computer game. (click triangle in a top left corner to play). Here you can even check Python code of my game.

Recently I also enrolled at Bitcoin and Cryptocurrency Technologies course that will be started in a few weeks, so join me as it gonna be a lot of fun

Udacity - a service that provides its users with free access to the lectures of famous professors and developers. Here I passed dozens of courses which were not only about programming but also about business, trading, economics etc. There is plenty of free courses but sometimes audacity also sells out their courses for $10.
I love Udacity because it helped me to start my own business. Probably will tell you about it in my future articles.

HourOfCode - the web service of the company "Microsoft". The learning process is like a game.

Mobiletuts + - a resource with articles and tutorials for developers of mobile applications. It covers the development of native applications, websites, available from mobile devices, and Web applications in HTML 5, CSS, JavaScript.

CodeAcademy - a powerful resource for the study of almost any coding technology. Paying just an hour a day you will learn how to create your own projects. You perform tasks right in a browser and there is no necessity to install compilators and other technical stuff. Here I accomplished Python course where learned how to make different HTTP requests.

Code Avengers - the site where you can learn HTML5, CSS3, and JavaScript, and each course is carefully designed to truly inspire and motivate you. At the end of each lesson, you are invited to a small mini-game that allows you to apply your knowledge in practice.

Once you passed the course don't forget to add the certificate to your linkedIn profile.


enter image description here

Summing up, I would like to give you an advice - learn basic structures, which form the basis of any programming language, look for specialized courses and constantly practice your programming skills, then success is guaranteed. One has only to try and I am sure that you will like to become an expert in the IT field. I already passed part of this thorny and interesting path and encourage you to do so

If sources that are listed here are note enough for you, feel free to contact me in steem.chat and will probably give you some specific advice on where to get started

Image credit: 1, 2, 3, 4, 5, 6, 7, 8

Follow me, if you are a geek like me or interested in technologies and scientific/educational topics

Alex aka @phenom

Sort:  

Hello @phenom,

Your post has been chosen by the @robinhoodwhale initiative as one of our top picks today.

Learn more about the Robinhood Whale here!

The Steemit community looks forward to more great stuff from you. So, please keep on Steeming!

Goodluck!
~RHW~

thanks, @robinhoodwhale.
I'm glad to have opportunity be chosen by robinhoodwhale initiative

i don't like java & php really, but good post @phenom !
let introduce people to programming 8]

I love programming and this post is very interesting for me)

thanks, @dedi.
Stay tuned and keep learning

👍thanks for sharing, very interesting for us @phenom

Glad to receive feedback from you. Appreciate it

I started programming a few month ago and I can really recommend Treehouse.
( for swift, java, HTML, CSS, C++ and a lot more)
Sometimes it is hard to just watch videos and write all the information down. They do tricky quiz´s and these are super helpful.

IMO Practice is the most important thing. You can know a lot of theoretical stuff and other garbage, but if you never applied it, it most cases it's gonna be wasting your time. So once you learnt some topic, just make up simple exercise for yourself or take some simple task at the freelance website. It will motivate you and finally you'll go far beyond the topic exploring StackOverflow and other useful resources.

This is awesome! I tried Code Academy a few years ago but didn't keep at it. This is a great list and I think it's going to motivate me to try again! Thanks!

CodeAcademy has really good courses. You should try it out again

Really useful post for anyone who wants to learn programming! thanks!

Thanks, Alla. If you will get bored with cooking you can try yourself in programming :)

Hey, @phenom great work. I'm host of CELEBRITY STEEMIT where we explore all things Steemit. I'm interested to get some knowledgeable techy futuristic programmers on the show sometime.
I'm also an exponential entrepreneur exploring how we will build the fastest A.I. on the planet and help contribute to a world of abundance 4 everyone. I do other stuff too. I love to laugh and have fun. Always a pleasure reading great content.
Thanks for producing!

@phenom I would recommend you to fix this article. As an academic researcher you should be aware that publications with multiple mistakes can have a negative impact on your reputation. It will stay on Steemit for a long time.

A section from your article:

• Java - used for writing of tools for websites.

False.

• PHP - a language for creating sites with personal pages.

False.

• MySQL - is widely used in the creation of Web sites, which require storage of large volumes of grouped data.

As you list languages here, a correct choice is to discuss SQL not MySql

• CSS - Cascading Style Sheets. It can only be used in conjunction with HTML to make the style markup language and appearance.

False.

I would like to discuss it in more details but assume you have not much time to edit this post. Most of above statements put you in a very bad light from my perspective.

PS: Where is JavaScript on this list?

Hi, Radoslaw. Thanks for your comment. I love when people give objective criticism and advise. And you're absolutely correct. Here I wanted to give just a general examples for newbies not drilling down into details.
I was glad to discuss it with you privately in steemit.chat.

Thank you! Very in-depth article. Love it!

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.029
BTC 62843.32
ETH 3475.97
USDT 1.00
SBD 2.53