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.
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 trainSelf-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?
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.
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.
- 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.
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.
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.
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.
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.
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
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~
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
thanks, @robinhoodwhale.
I'm glad to have opportunity be chosen by robinhoodwhale initiative
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
@phenom, congrats on the @robinhoodwhale !!!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
i don't like java & php really, but good post @phenom !
let introduce people to programming 8]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I love programming and this post is very interesting for me)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
thanks, @dedi.
Stay tuned and keep learning
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
👍thanks for sharing, very interesting for us @phenom
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Glad to receive feedback from you. Appreciate it
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
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.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
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.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
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!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
CodeAcademy has really good courses. You should try it out again
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Really useful post for anyone who wants to learn programming! thanks!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thanks, Alla. If you will get bored with cooking you can try yourself in programming :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
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!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
@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:
False.
False.
As you list languages here, a correct choice is to discuss SQL not MySql
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?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
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.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you! Very in-depth article. Love it!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit