Question:
For programming beginners (newbs), is it better to learn multiple languages at once, or stick with one first?
1970-01-01 00:00:00 UTC
For programming beginners (newbs), is it better to learn multiple languages at once, or stick with one first?
Eight answers:
Henry C
2012-12-27 20:36:04 UTC
Definitely pick one and stick with it for a while. Most "normal" programming languages (Java, C#, C++, Python, PHP, etc.) involve the same concepts. If you can write a "for loop" in C#, you can learn to do it in PHP in a matter of minutes. But you don't want to become slightly knowledgeable in a lot of languages, that usually isn't useful to you or your potential employers.



And if you are looking to get into the programming field, do a job search and see how many jobs, and what they are paying, for which languages. Typically C++ programmers make a lot of money, but it's a very difficult language to learn, and those jobs are a little more niche. Java and C# are the 2 really mainstream programming languages that will lead you to many jobs, and decent pay, but you'll probably be competing against a lot of people. A lot of start-up type companies are looking for Python, PHP, or Ruby developers because its typically cheaper to start with those languages (because they're open source) and they don't usually have to pay developers that much.



Bottom line is, do some research before before jumping on to one language versus another, and make sure to stick with your choice for at least 6 solid months of development, not just typing a few lines here and there or reading a few blog posts, but real application development.



Good luck!
loar
2016-08-11 04:45:40 UTC
You are on the right direction. Javascript is satisfactory and it's the excellent one to be trained and most practical without getting complex. Observe that HTML and CSS aren't programming. What you are doing in these languages is making a portfolio and enhancing the textual content and pictures to appear a special means. The improvement of Javascript is you don't want a compiler for that reason it can be displayed straight on a browser. The easiest language to gain knowledge of is basic, but you won't get to use it much to whatever so that you relatively is not going to be learning for far. Common and visible basic are frequently utilized in an place of work surroundings, like for storing documents and such. Do you work in an office? I do not suppose you possibly can. The obstacle with C, C++, and function-C is they are very functional, however best while you've taken the right arithmetic publications akin to Discrete math. You could build programs without understanding the mathematics, but as soon as you want to create the high-quality packages, then you definitely need some math, and it's now not something most often taught in ok-12, this is university. So as to reply your query, Javascript definitely. There is conveniently a lot of Javascript guides on-line.
JimKata
2012-12-27 20:30:54 UTC
I would got with C or C#. Many other languages and scripting languages use syntax that is similar. C was the second language I learned after Fortran. Seemed to make learning other languages after that (Java, C#, most scripting languages ) Java would be easier in some ways than C/C# but C/C# is used in a lot of places and would be a good first language.



What every you decide, good luck.
dapacc
2012-12-27 22:34:01 UTC
I would say to learn many but master few. Learn the basics of C++ as this would lead you to know the basics of many other languages (the syntax for C++ is the same as many other languages). Pick up a scripting language (such as PHP). Learn some HTML, Javscript, JQuery, and SQL (these are the major parts of building a website as well as PHP). If you master one language, that's great depending on what you do, but if you are interested in web development, you need to be a jack of all trades basically. Also, whoever told you Python was "too easy" is crazy. However, I would agree that Python is not a good building block as it does not have the same structure as many other languages.
Lisa A
2012-12-27 21:59:31 UTC
Learn C first. If you can learn C, you understand computers and programming. If you understand C, you will be able to pick up any other programming language very quickly.
Sam
2012-12-27 20:26:58 UTC
We learned C in my university and stuck with it. my professor said that we should master one of the basic languages so that if the current popular language gets overtaken by another language, adapting isn't hard as learning and mastering another language
2012-12-28 00:34:15 UTC
You need to learn several languages from start to understand programming better. You later can choose a language to pursue depends on which you want to write web or application.



Popular languages to learn:

Web: PHP, HTML, javascript

Android app: Java

Desktop software: Java, C#

iOS app: Cocoa
Referentially Transparent
2012-12-28 13:43:04 UTC
From what I understand MIT has moved a lot of its basic material over to Python from Scheme. Thus, python is a good choice in your situation. I will cover a little more about python later.



Learning concepts is much more important than learning a specific language.



What you don't want is to master 1 language and only those concepts. There are lots of programmers out there in that situation, lucky for them Java is the new Fortran.



Hopefully your goal is to be a programmer, not a programming language end-user.



Every language has its pros and cons and approach different concepts in different ways, learning multiple languages teach you not only to look at things differently but help show the tradeoffs.



Except PHP, don't bother with that absolutely poorly-designed hacked-up mess of a language, seriously, stay away. Pretty much any other language is worth learning.



C and Lisp(CL, Scheme, Clojure,etc) will cover just about all the major concepts. If you only learned these two languages approaching competence, you would be able to move from language to language with little effort as job opportunities arise.



Learning an actual functional language like Haskell or Scala will prove useful. With more and more processor cores, functional languages are the way through until processor architecture changes. A pure functional language trivializes parallelism.



Erlang would also be a good choice for learning parallelism.



To learn OO, you really need an actual language that embraces what OO is about: passing messages. Smalltalk, Ruby or OCaml would be perfect, Python not as much and Java and C++ not at all as they have brain-dead OO and type systems.



Learning various type systems is valuable. Strongly typed languages like Python and Ruby are great to learn because of they are much less fragile and rigid like Java. Type-inference is something to be aware of as it cleans up the negatives of both statically and dynamically typed languages. Haskell, Scala and OCaml are examples of these.



Python isn't a bad language to learn programming concepts, much much better than Java and better than C#, although C# isn't a terrible choice. Python is much less verbose than Java or C++, and not nearly as flexible as Ruby or a Lisp. Both of those attributes make it an ideal newbie language. This shouldn't surprise since Python is based heavily on ABC, a teaching language.



It can and is used for for advanced applications. It is heavily used in scientific applications, has been used successfully for 3D games(Eve is an example) , lots of security and system tools, and on the web. Lots of desktop apps use Python, especially KDE apps.



Python also supports a little bit of the more advanced functional concepts, so Python will help ease your entrance into those concepts.



Now, I am not a huge fan of Python, because its rigidness annoys me to no end, but it is a very good language, in production or learning. So don't label me a Python fan boy.



In my first year of CS studies I got to use C, C++, Java, Python, NASM and SPIM when learning. Sadly my school didn't use any Lisp language so I had to dig into that on my own.



I forget who made the suggestion to learn at least 1 language a year, but it is good advice. Lisp and Ruby are the two languages I learned on my own that advanced my abilities more than anything else. Both give me such a wider view of computation than C or Java ever could. I have no intention of stopping learning new languages. This is a field where constant self-education is required, unless you want to be simply the aforementioned language end-user.



Python and C should cover you for a lot of what you will learn. If I were you I would stick to these two for a while and then slowly bring in other languages.



You can learn Java eventually, but even simple programs can have so much boilerplate that the concept you are trying to learn gets lost.



A few general suggestions



When you learn simple data structures like a linked list, C would be great because it would help you learn pointers. Same for recursion but recursion is used more in functional style languages.



Python's OO isn't so hot, try Smalltalk or Ruby to really learn OO principles.



Don't forget to learn some discrete mathematics, very helpful. Programming is mathematics.



Don't just learn SQL, learn the actual relational model, so many people misunderstand it due to lack of mathematical foundation in set and relational theory. /pet_peeve



Also learn a little about alternative data storage like the so called NoSQL systems.



Also do not forget to learn how memory works, from processor cache to virtual memory. Very important concept no matter what languages you end up using.


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