Question:
Which Programming Language should I learn?
Jonathan Cha
2013-07-31 17:41:01 UTC
Im new to programming but I really want to start off with app development for iOS and Android, Im not sure what language I should start off with though. I know that the C language isnt what you just jump to so I was thinking maybe java or python would that work? Mainly the programs will be games or tools. Afterwards Ill move onto C or C++. Also for web development what language do you recommend me using and what program should I use to compile my applications. It needs to be for Mac OS X
Six answers:
?
2013-07-31 18:31:32 UTC
the following is my opinion as it is the way I learned programming. I've been programming for around 4-5 months, 4 with a university class and 1 with a Coursera class.

____



For Mac all you need is the Terminal app (which comes prepackaged) as your command line. Start off with a language like Python - Python is packaged with Mac so you don't need to download anything. Terminal is also a Python interpreter and use nano to make scripts.



Learn with Python just enough so you can get a strong understanding of what booleans, conditionals, recursion, iteration, arrays, and objects are. The syntax is really simple (if I may, "dumbed down") so anybody can understand it. Then do some C or C++ do get an idea of what using a low-level language is like. My experience with compiling C++ with my class is by using Putty (which comes with G++ which is a C++ compiler).



Udacity has a free course on Python and I recommend you get a book on C/C++.



Then decide on what you want to do. If you want to web development, first learn how to use a command line interface, git, emacs, and GitHub. In order to get an Ubuntu dev environment (which you do), you have to either use a Virtual Machine (locally) or a t1.micro EC2 Instance on Amazon Web Services (remote machine). Pick the 12.04.2 LTS server when signing up so you can get 1 year of free AWS service. Also learn how to use Heroku.



Then choose between Ruby, Python, and JavaScript as the web dev language you want to learn. You can also choose PHP but there's really no reason to. For Ruby, you want to first learn the Ruby language and then learn how to use the Ruby on Rails web framework. Python's web framework is Django, and JavaScript uses Node.Js to do its server side stuff. The class I'm taking right now is using Node.js/JavaScript and I recommend that if you want to focus on front-end web development since there is little effort on the server-side. But learn all three and the pro's and con's of each before you choose.



For actual web design you want to learn HTML (information), CSS (styles), Javascript (activity), and jQuery(Javascript library that makes Javascript simpler). Codecademy has courses on all four that should make you a competent web designer. Then download Twitter Bootstrap - it is a HTML/CSS/jQuery web framework that is very popular with internet startups. They just released Bootstrap 3 which focuses more on flat design. Also learn about responsive design which changes how a website appears based on accessing it on phone vs. tablet vs. laptop/PC.



-----------------------



In terms of ACTUAL LEARNING, it's going to be a long journey for you. You're going have to learn to be resourceful and search the internet for questions you have. For initial learning you will need to read online info, books, and docs, but for the real learning it's going to take hours of trial-by-error to make you a good programmer. Spend hours and hours on StackOverflow reading answered questions to learn through other people's mistakes. The users on SO will not hold your hand when it comes to so learning to be resourceful is very important. I was extremely frustrated with something two days ago and I was ready to publish a question until realized an obvious error in the code I posted. Google will be your new best friend here.



It's going to take a while but whatever you choose to do you will get good at if you put time and practice into it. I only went over front-side web dev since it is something I am comfortable generalizing about so hopefully someone else can answer what you can do for app development - but for starters Objective-C is the language for iOS development and Java is the language for Android development. Please take some time to learn the constraints of each language as you are all over the place in the OP
Stephan W
2013-07-31 18:02:32 UTC
I think you have a good foundation started. Keep in mind that devices (embedded systems such as mobile) have OSes that fundamentally written in C/C++ whereas the applications are written in Java (Android) and probably iOS / Cocoa. This is to say that the operating system hosts environments that allow these applications to run. When writing a game, you will mostly be using the application side. Some tools may require running within the OS layers (such as a virus scanner).



After a couple of years, by the time you become proficient at these languages, there may be a different mobile application platform (such as HTML5) or iPhone & Android will no longer be the top mobile devices. Because of this, you might stick with java or C/C++ to build your base skills. With java, you can quickly write web server code. C/C++ would be better for OS code (tools / embedded).



From your question, I am guessing that you're not planning to write web server code. To write web server code, you can use PHP, Java, C/C++ and several other languages. I'm also guessing you're not so interested in scripting languages like perl and python. If you're hedging your bets stick with Java.



By the way, if you write your games or other applications for HTML5, it's extremely likely that you can run the applications on a mobile, tablet or PC. HTML5 environments seem to be the future path.
Teeter-Totter
2013-07-31 17:52:19 UTC
I would suggest learning in this order as this basically builds concepts up and allows you to learn what you need for the next language in the list.

BASIC - Allows you to learn how programming is structured. (JustBASIC is AWESOME and even has a built in tutorial.)

Python - Teaches you about object oriented programming, and how to import objects from other files.

PHP + Javascript + XHTML/CSS - What webpages are written in. Also teaches you the layout of advanced languages.

Java - What android apps are written in and follows the layout of php sortof.

C++ - Most desktop apps are written in this language.



You can use python or PHP on your webserver. You have to write python in cgi mode when using it for the web though. Java is what Android apps are written in so that's important. Most programmers have to know more than one language and this plan is a cover all starting with the basics and working your way up. Each step up includes more and more programming concepts so if you follow it you should be able to program about anything when you're finished. Also, tutorials for everything except JustBASIC can be found at http://www.thenewboston.org
It's not magic, it's physics!
2013-07-31 18:34:23 UTC
Most iOS apps are developed in Objective C.



C and C++ *are* languages you jump into first. Sure, Python, Ruby and Basic are all easier to use, but they give you bad habits that for projects bigger than "hello world" can lead to serious problems that are hard to trace. It's best to learn with a mentor and a very unforgiving compiler.



Java is very C-like, so you wouldn't get anything extra out of going with Java first.
Martin
2013-12-02 22:40:06 UTC
New in the current edition

Fully updated for Rails 3.2 and Ruby 1.9

Supplementary chapter on Rails 4.0

Full Rails 4.0–compatible version of the book

Supplementary screencasts on Rails 4.0 and security updates

All-new design using Twitter's Bootstrap

Coverage of the new asset pipeline, including Sprockets & Sass

Behavior-driven development (BDD) with Capybara & RSpec

Better automated testing with Guard & Spork

Roll your own authentication with has_secure_password

An introduction to Gherkin & Cucumber
2013-07-31 20:39:16 UTC
Dude, to be a good programmer you need to learn all of them and know them well enough.



Recommend from me and my experience. No matter what the heck you want to be web developer, application developer or game developer you need to learn these languages. Do not start off with Objective-C otherwise you gonna quit. Trust me bro.



Start off with these languages:



Application developer.....



1. Learn the basic concept (Raptor Flowchart)

2. Visual Basic

3. C#

4. C and C++

5. Delphi

6. Java

7. Objective-C



Web Developer...



1. HTML/CSS

2. JavaScript

3. Python (General) you can use it to develop desktop application also.

4. PHP (Widely used. THE HOTTEST WEB LANGUAGE)

5. Perl

6. Ruby

7. ASP.NET





99% of web developer learn how to talk to MySQL database. You might want to be one of them.

--------------------------------------------------



Android apps you need to learn Java.

iOS apps you need to learn Objective-C



--------------------------------------------------



With Mac OS you just need to go to Mac store and download XCode it's free. You can write C or C++ code using Xcode or you can download Code::Blocks to do that. Netbeans and Eclipse are for Java, PHP, C++ and HTML5. But for web developer I highly recommend Dreamweaver if you don't have Dreamweaver then download Komodo Editor its free for both Mac and Windows.



-------------------------------------------------------------------



Well, that's my experience when I start my programming career. Remember don't ever start off with Objective-C otherwise you gonna quit.


This content was originally posted on Y! Answers, a Q&A website that shut down in 2021.
Loading...