Which is the programming language you wish you had learned at the very beginning of your programming career?
Also mention the reason.
|
Which is the programming language you wish you had learned at the very beginning of your programming career? Also mention the reason. |
|||||||||||||||||||||
|
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.
|
Python It is easy to learn for an absolute beginner, yet includes support for powerful features such as proper OOP, higher order functions and closures. It also comes with a pretty big library, so it is easy to get something useful up and running in a very short time. I think the same case can be made for other similar languages like Ruby. |
|||||||||||||
|
|
C (Not even C++) As low level as possible without being impractical as assembler, you have to work with the basic elements of the operative system and concepts that will always be useful to program. It's harder than starting with higher level languages as Python, Ruby or even Java, but it will pay on the long run. |
|||||||||||||
|
LispWhy: elegance, expressiveness, generality, power of macros, and functional paradigm - as well as any other paradigm of interest. Shifts one's perspective from instructing the computer step by step, to designing languages. Still very relevant today, decades after its invention - in fact, experiencing a renaissance, particularly with Clojure - a modern Lisp dialect. Instead, I learned Basic, Pascal, and C early on, and was so disgusted I lost interest in coding for years. But such was the state of technology at the time; Lisp wasn't easily and freely available for home computers. Check out the magnificent classic, The Structure and Interpretation of Computer Programs and its video lectures to (re) experience the magic and fun of programming. |
|||||||||
|
|
This question is difficult to answer. I was going to say LISP, or Haskell, or any other functional programming language for that matter, but then thought again: The programming language(s) with which I am most comfortable these days would not necessarily have been the right one(s) to learn first. I got into programming when I was only 9 years old. BASIC was an easy language to learn. (Of course, in retrospective, I shudder at the kind of code I wrote back then.) I would probably have struggled a lot more with a language like Haskell and all its mathematical influences and terms ("Y-combinators", "lambda expressions", "monads", "arrows", anyone?) Instead, I basically followed the historic, or "mainstream", progression from structured programming (GW BASIC) to procedural programming (Turbo Pascal) to OOP (C++), and have finally arrived at more declarative and more functional forms of programming (C#, F#). I am hoping to learn Haskell soon. (The reason for my current interest in declarative and functional programming is that I am impressed by their expressiveness, and because I feel that computers, and compilers in particular, have finally become powerful enough to run programs written in such high-level languages with good performance.) While this progression took me approx. 15 years, which is quite a lot, I think it was a natural way for me to learn programming, internalise important theoretical concepts, and also to understand why programming languages today are the way they are. When I was at university, we had to program with Java. Many of my colleagues there who had never before programmed anything struggled with seemingly simple things like syntactic rules ("Why and when do I need to put those To conclude my answer: Learning how to program well and really understand what's going on takes time, and it's perhaps a very good thing to take the long road and make some detours before arriving where one wants to be. |
||||
|
|
Commodore/MSX/Sinclair/Amiga BasicYou're probably thinking I'm insane now. 'We had to walk in a snowstorm, uphill both ways,' I hear you say. 'We had to Well, here's the thing: you have fond memories of all those good times you spent playing around with your computer when you were young. When you get together, you can share war stories and laugh over how terrible programming was. And you can actually appreciate how modern technology made things easier for programmers. We, on the other hand, got everything easy; everything just works, memory and storage are practically infinite, debuggers and profilers are dozen-a-penny, documentation is two clicks away, and if something is really difficult, we can ask on StackOverflow and get excellent advice in no time. I really wish I had hard times, I really wish so. |
|||||
|
|
Haskell Programming in (idiomatic) Haskell requires a rather different mindset than imperative languages, and it can be really hard to shift into that mindset when you're used to C, Java, Python, etc. I'm not sure if a "native Haskeller" would have similar problems moving to an imperative language, but sometimes I wish I had learned Haskell first so I could grok some of its style better. |
|||||
|
|
C#. I started out with lower level languages that weren't conducive to work. Reverse of other answer saying "C... As low level as possible without being impractical as assembler" but on the flip side: C# is high enough to do end-to-end solutions without having to rely on learning the guts. |
|||
|
|
|
Pascal I know it is not practical since Pascal it is of less use in the work life, but it is strongly typed language, so you learn to program the right way:
|
|||
|
|
|
Assembly. I believe that if you don't understand low level operations (what happens in the CPU, the RAM, etc), you can't be a complete programmer. |
|||||||||||||||||
|
|
D from Digital Mars It's universal, allowing you to write system-level code or high-level, depending on the subset of the language you use. Being similar in syntax to C and binary compatible with it makes it highly practical as well. Too bad it's not too popular and does have a lot of 3rd party tools to work for it; maybe I would have switched to writing mostly in D long time ago. |
||||
|
|
|
According to Me,C Language is the first Language to learn by an every developer, because if u learn t c language very well , u can able to learn the Object Oriented Programming Languages very easily.I feel C is the Basic Foundation for an every developer, since all Languages inherit the features of C and if u are going to develop embedded applications, C language will help u to develop embedded applications in fragile manner. |
|||
|
|
|
I started with Pascal, soon followed by Assembler/C and then C++. I wouldn't change this order except, maybe, for Pascal (which is quite useless nowadays). I know I got lucky because it happened that the most "famous" languages of the time were also the "better" to understand the basics. I pity nowadays beginners (at least of Java and C#) which grow up without truly mastering the difference between automatic and dynamic variables. (I also was used to pity them for not knowing the difference between the memory model |
|||||
|
|
I don't wish that anything from my past was different. Why bother pondering past regrets? Everything that I've done has helped shape who I am now. I get the feeling that your question is actually "Help me decide which language I should learn first." If so, I suggest it's a question that is a waste of time. Instead of wasting time thinking about what language you should learn first, spend your time actually doing the learning. Then you can learn another one if that doesn't speak to you. The value of learning is 100% greater than the value of thinking about what you might do. Ruby. Perl. Java. FORTRAN. Doesn't really matter. Pick one at random. Quit thinking and start doing. |
|||
|
|
|
Assember / C. You get to understand how compilers / assemblers / linkers work, you can "see" the software drive serial ports, VDUs etc. and you get to understand how the whole stack works. Visual Studio, Netbeans and Eclipse are great IDE's which ramp up productivity but offer no understanding as to how things actually work. |
|||
|
|
|
Logo Visual Feedback Logo gives you immediate gratification because it has a visual Turtle that you're moving around screen. I successfully started programming with BASIC at 8 years old because I could write "10 Print "Hello World" "Run". Moving a Turtle is a lot cooler than printing some text. Immediate Success Logo has the immediacy of a scripting language, for example you can type:
You don't have to 'write a program' or 'create a class' or 'create a Main method' that most other programming languages require as step one. You don't even have to type 'Run' from the BASIC days. Structured Programming Beneath the ease of use is a language which introduces the simple concepts of structured coding and classes, unlike BASIC. It's starting you on the right path for a 'professional' language.
Logo is a great language to use for the first six months of programming. It's simple. It's visual. It's immediate. It's structured. |
|||
|
|
|
The same language I learned first: C++. The way it was taught to me told me about more than just "you type this it does that". It taught me the fundamentals of how computers work, exactly what a variable is, what bits and bytes are, ext... Twenty years later can't remember a damn line of C++. But because of the principles I learned from that language I'm constantly able to pick up a new language whenever I need to. |
|||
|
|
|
Any programming language as long as I learnt it from the right instructor. My big mistake wasn't learning visual basic first. It was learning visual basic from one of those "learn it in a week" style books. It's not the language that caused my bad programming habits, it's the way that I learnt it. Afterwards I had to unlearn everything I thought I knew before I could really learn how to program. Syntax changes, but good concepts and habits last a lifetime. |
|||
|
|