Hi HN,<p>I want to teach myself how to program and build a simple app but don't know where to start. Should I build a mobile or Web app? Google is a bit overwhelming because it gives so many different options so I was wondering if someone can point me in the right direction?<p>Thank you
I would start from the beginning using something like C. Get familiar with the fundamentals and how programs work before moving on to something higher level.<p>I always see people starting off with python, Java, or JavaScript, but I feel that if you do that you are missing some core concepts which will take you a long way. This knowledge you will gain by struggling with memory management in C will give you an appreciation when you finally decide to move on. It will also provide you with a foundation for deeper understanding when exploring how things work in these higher level languages.<p>It may be a pain, and an unpopular opinion, but I think it is the best way to learn the basics, and the basics are important.
Between mobile and the web, I'd recommend the web. In terms of learning programming however, I'd recommend starting in a language ecosystem where the community values teaching programming to new comers. In my opinion, Racket and Processing are good places to start learning to program:<p>Racket: <a href="https://docs.racket-lang.org/" rel="nofollow">https://docs.racket-lang.org/</a><p>Processing: <a href="https://processing.org/" rel="nofollow">https://processing.org/</a><p>Most web development tools and nearly all mobile development platform assume that the developer is a professional. The tools are complex. The documentation assumes significant familiarity with programming.<p>Good luck.
It depends on what to want to do. If you are learning because you want to get a job in the market I would suggest picking up web application development. Web application developers are in higher demand than mobile developers. This is based on me working with multiple web agencies and observing their hiring ratio. Usually it's 4-5 Web App developer to 1 mobile developer. Another thing is good web developers are a rarity. Mobile developers have flooded the market.<p>There is more demand for Web App developers than Mobile Developers<p>But if you are starting a company and want to build your idea which is a mobile focused product I would suggest start with mobile, you will be able to execute on your idea faster.
> I want to teach myself how to program<p>Great!<p>> Should I build a mobile or Web app?<p>As artellectual says, it depends on what you want to do, between those two.<p>But there are many more types of software beyond web or mobile apps. You could write personal programs that run locally, for your own use (and which are a good way to learn, since you're scratching your own itch). There's math, science, embedded, financial, etc. Any of these might be standalone programs, or they might run on a web server with a browser front end. You might program on the front or the backend.<p>If you want to learn "to program," here are a few resources:<p><a href="https://docs.python.org/2/tutorial/" rel="nofollow">https://docs.python.org/2/tutorial/</a><p><a href="https://www.ruby-lang.org/en/documentation/" rel="nofollow">https://www.ruby-lang.org/en/documentation/</a><p><a href="http://docs.oracle.com/javase/tutorial/" rel="nofollow">http://docs.oracle.com/javase/tutorial/</a><p><a href="http://racket-lang.org/" rel="nofollow">http://racket-lang.org/</a><p><a href="http://docs.racket-lang.org/htdp-langs/index.html" rel="nofollow">http://docs.racket-lang.org/htdp-langs/index.html</a><p><a href="https://duckduckgo.com/?t=lm&q=learn+c+programming&ia=web" rel="nofollow">https://duckduckgo.com/?t=lm&q=learn+c+programming&ia=web</a><p><a href="https://www.khanacademy.org/computing/computer-programming" rel="nofollow">https://www.khanacademy.org/computing/computer-programming</a><p>More broadly:<p><a href="https://en.wikipedia.org/wiki/Computer_programming" rel="nofollow">https://en.wikipedia.org/wiki/Computer_programming</a><p><a href="https://en.wikipedia.org/wiki/Outline_of_computer_programming" rel="nofollow">https://en.wikipedia.org/wiki/Outline_of_computer_programmin...</a><p><a href="https://en.wikipedia.org/wiki/Portal:Computer_programming" rel="nofollow">https://en.wikipedia.org/wiki/Portal:Computer_programming</a>