HackMD
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    How to start programming and the best educational sites. Sharing my own experience ------------------------------------------------------------ *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](http://i84.fastpic.ru/big/2016/0902/d4/7ecb09c4c48cf5dd50656d056dc197d4.jpg) ---------- # 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](http://i84.fastpic.ru/big/2016/0902/6f/6730406a2e3223a74e6b1a4bc78a0c6f.jpg) *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](http://i84.fastpic.ru/big/2016/0902/6b/126ea439441ecf0ccb0ad19dfeb8cf6b.png) 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](http://i78.fastpic.ru/big/2016/0902/28/62a5694533d9e4ae0d33a085da3d1028.png) - 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](http://i83.fastpic.ru/big/2016/0902/3c/b36c68aae11e30daa61d97da0e69563c.gif) - 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](http://i78.fastpic.ru/big/2016/0902/d0/4ce66cc2eedf121e0aa723b782a3fdd0.jpg) 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](http://i82.fastpic.ru/big/2016/0902/72/4d9428a437c3db336febb04dd9a30b72.jpg) 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](http://i82.fastpic.ru/big/2016/0902/27/51f984ae63105ba67bce07f6fb438827.jpg) *Useful online services to study basic programming principles:* --------------------------------------------------------------- **[*Learn to code with me*](http://learntocodewith.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*](https://en.coursera.org)** - 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**](https://www.coursera.org/learn/interactive-python-2)) and created **[RiceRocks - my first computer game](http://www.codeskulptor.org/#user38_FQ3Hn9EBx6UckYQ_3.py)**. (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](https://www.coursera.org/learn/cryptocurrency)** course that will be started in a few weeks, so join me as it gonna be a lot of fun **[*Udacity*](https://www.udacity.com)** - 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*](https://hourofcode.com/en)** - the web service of the company "Microsoft". The learning process is like a game. **[*Mobiletuts +*](http://code.tutsplus.com)** - 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*](https://www.codecademy.com)** - 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*](https://www.codeavengers.com)** - 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](http://i84.fastpic.ru/big/2016/0902/fb/026a2e677a5f59bda1b0cc6f979ecafb.jpg) *At the end of this article 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 and will probably give you some specific advice on where to get started **Image credit: [1](http://uk.dice.com/technews/programming-challenge-life/), [2](http://www.metaltoad.com/blog/rubies-drupals-behats-and-other-dev-gems-tadpole-view), [3](http://codecondo.com/20-ways-learn-android-development-free/?xrs=RebelMouse_tw), [4](http://skachat-besplatno-rebecca.gq/commonly-used-mobile-programming-languages/), [5](http://insights.dice.com/2016/08/01/programming-languages-with-greatest-growth/), [6](https://www.fiverr.com/mbnhmd/do-your-programming-assignment-c-plus-plus-c-sharp-java-web-tasks?gig_id=13762349&view=gig), [7](http://linuxguru.ru/best-news/vyshlo-obnovlenie-java-ispravleno-50-uyazvimostej/), [8](http://gamebomb.ru/gbnews/16678)**

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully