Wednesday 27 August 2014

What Programming Languages Should I Learn

 

 

Why  a programming language ?


In simple terms a programming language is a way/medium to communicate with the machine. There are many ways that that we can communicate one way is directly interacting at the hardware level but it had the limited scope and unlimited complexity. In the earlier days before the dawn of programming era every component  in the computer must be inter connected through wires and it posed a much complex problem for the Engineers and scientists to configure the system for every  use.
                                                                                             




inside the computer







It all changed with the invention of programming language.Ada Lovelace, was an English mathematician and writer chiefly known for her work on Charles Babbage's early mechanical general-purpose computer, the Analytical Engine. Her notes on the engine include what is recognized as the first algorithm intended to be carried out by a machine. Because of this, she is often described as the world's first computer programmer. So that began the great ever ending and ever evolving chapter of human innovation.


 


HOW MANY LANGUAGES SHOULD I LEARN ?



There is no standard number that how many languages should you learn.Perhaps one standard number is absolutely ONE .There is no need that you should learn languages one by one.There is no law that states that if you are not good at one programming  language then you will  be good at other programming languages and it is  biggest myth of programming.Take any language of your choice I prefer  C/C++ or even you can go with JAVA ,but it is advisable to begin with  C.
There is good reason to begin with C.C is the most fundamental and basis for most modern languages.I can bet that learning C will make you comfortable with any other language that you will learn further.C is fundamentally used component in operating system development ,Unix environments(Linux,Ubuntu) ,Hardware Programming (EMBEDDED-C) which used to program various micro controllers . 

 C  concepts are so fundamental that you can derive into  any modern programming language. It doesn't matter to what programming language you migrate  this concepts are vital and fundamental in understanding the language constructs and also understand memory and hardware organization  or You should pay at least some respect to the programming-language that changed the world. 

Not all but most of us will be uncomfortable with directly working with object oriented features (c++,java,c#……) for the first time while understanding the language framing constructs for the first time.C has most basic and easy syntax at the short time you can master the language. If you are able to prove your fit in one language then you will prove yourself in any other language

.


Who is considered as a good programmer?


Finally it all depends on how deep you go into a particular language. Learning a language by just grazing the surface and hallucinating that you are a master of that language just by answering some simple questions in the online or asked by your friend as a common syndrome for all programmers. But don’t fall to tithe more you explore the more you will find.You should know the difference between knowing something and knowing name of something.

 Many people claim that they are the masters of the programming or at least you will confirm by your observation by the way he performs in writing programs. But as always it to had two sides ,because most people doesn't dig deep into the technical stuff but learn all    the syntax's and logic's ,solves some problems thinking that that's all and that's it   what makes a programmer .I pity their innocence .But there is a difference between a  programmer and good programmer. 

But to much extent you will not be facing any problem in not going much deep into concepts of a language. But it had its limitations even though it is useful , you can’t go beyond some point and going on later requires an extra edge of skill above the normal line of your knowledge. So never get carried away by that fragile thoughts that will temporarily establishes  you as you know everything where besides you just know the facts that everyone knew.
Most people try the tasks below that is line of toughness,this is  what creates an assumption in them that they knew everything. But once you are tried to cross the bar i.e you are trying to risk beyond something ordinary you will come know  how much you should know.So never ever think that in programming learning this much is too much.



LANGUAGES FOR LEARNERS
Web design
1.HTML
2.CSS

System level
1.C
2.C++
3.JAVA
4..NET(C#,VB.net ,…..)
5.Objective-C(Mac,OSX,IOS)
Graphics and game development
1.OPENGL(Cross platform:can be implemented in C/C++)
2.DIRECTRIX(Windows-only)
3.XNA  Framework (based on .Net Framework):::::(XBOX-360,Windows,Windows phone)
Artificial intelligence
1.clojure
2.Lisp.
3.Prolog.
4.Snobol.
5.TCL
Engineering
1.MATLAB(signal processing,image processing,mathematical optimization models,statistical analysis,etc……..)
2.MATHAMETICA AND WOLFRAMALPHA
3.MATHCAD(solve complex engineering problem in a interactive and easy way ,etc……..)
Hardware
1.EMBEDED-C
2.ASSEMBLY (MASAM)

Database
1.MsSql Server (microsoft)
2.Oracle
3.DB2 (IBM)
4.MySql
.
.

Others
1.Php
2.Perl
3.Ruby
4.Phython




Challenging Your Programming and Mathematical Knowledge


https://projecteuler.net/

 http://www.hackerearth.com/