learn programming

Posted on 2017-03-20
Medium Priority
Last Modified: 2017-03-20
hello experts

can I know the best and simple way to learn any program language such as C, C++ or even java ?
I graduate as IT but until now I could not catch these types of programming because too many codes too many difficult things and I hope one day become like you solve and help other problems,
I searched and read your answers to the people who are like me and I found you guys have a good knowledge in programming specially java and C++.
how do you learn these programs I mean what way did you follow to make it easier for you to understand.
I hope you give me a simple way to start from as I'm human like you :)

Thank you experts,
Question by:taha agamal
LVL 20

Assisted Solution

by:John Tsioumpris
John Tsioumpris earned 1000 total points
ID: 42055201
There is no single -simple way to learn programming...its all up to you...
My proposal -given the fact you are an IT graduate- is to start with C plain simple C...grab a good book and write down the examples ...DON'T copy paste them...write them by hand...even the simplest ones...
After you have a good initial understanding then its time to move on...
You have 3 paths
either choose C++ and stick with this...it is by far the most challenging and hard choice but good knowledge of C++ will always guarantee a good job offering...C++ is just the rock solid timeless value in computer programming
go to the managed side and take C# and enter the world of .NET
you can learn JavaScript which is by far the hottest language right now in the job market (along with the accompanying Web technologies).

Expert Comment

ID: 42055219
HI, taha agamal,

If you have a good or some basic concept about the m/c architecture, like instruction set / bus width etc... then start with C/C++.  The reason I say this is because some of the cryptic ideas has a very logical sense if you know the fundamental platform well.

Else I would suggest to use other fairly high level prog.lang like Java.  If you want a quick start, I would suggest Python.  After having 15+ yrs of exp on c/c++/java, I recently started learning Python and starting loving this.

Python is more English like and less cryptic syntax, yet very powerful.

How to learn a language -->

1. try basic simple programs as much as you can.  Like print statements.  Simple programs, like factorial calculations, printing an triangle of stars(to learn basic for loop syntax).  
2. participate programming challenges site like hacker rank / hacker earth sites and complete those problems
3. read programming question sites like expertsexchage/stackoverflow etc...
4. try some mini projects

Hope this helps,

Author Comment

by:taha agamal
ID: 42055229
Thank you very much Mr.John
 your words is really teachable and easy to understand. you gave me a really hard choices because I want to learn it all :)
all is useful and very interesting
can you please explain more about the different between javaScript and C#

thanks a lot master.
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

LVL 56

Expert Comment

by:Ryan Chong
ID: 42055239
how do you learn these programs I mean what way did you follow to make it easier for you to understand.
not really an absolute answer, but this usually work for most of the people. you may need to have passion + diligence + intelligence

passion so that you will keep learning
diligence  so that you know you can do it
intelligence so that you understand what is showing and what you have learned, and reuse it in other scenarios, usefulness of the knowledge, etc.

you need time to adjust and review the learning tactics but sometimes we just lack some of those pieces to make things work...

so, for myself, i would try to build my own knowledge base... whether I will store the useful knowledge somewhere so that I can refer back to when necessary, or I try to conduct more practices in order to make something success.

this applies to all things we want to learn, not just limited to programming.
LVL 20

Assisted Solution

by:John Tsioumpris
John Tsioumpris earned 1000 total points
ID: 42055244
I am note sure what you mean by  different between javaScript and C# they are 2 different languages with different philosophy but at the end you will see that every language you try to learn requires just one (1) single thing...to master just 1 language no matter which...
Lets say that you master X language and you try to learn language Y....we assume that you have mastered X language....and then you come to world of Y language....and you start to code...you don't know anything about Y language but you do know about control flow,loops,data structures...etc. and you just find the appropriate syntax to perform that..it will take a while but not that long...
And yes going from a procedural language to object oriented to functional is hard but you can always code the style you know and make the necessary investments in time to jump to the next level...
LVL 29

Accepted Solution

pepr earned 1000 total points
ID: 42055263
In my opinion, there are two extreme ways to learn programming (and more ways in between).

The first one is based on understanding what is a computer, what is RAM, what is bit, what is byte. What is a storage media (disk), what is a processor, how the instructions look like. Then, what is a program, what is a process, what is a data structure, what is a file. How a byte or more complex data structure is represented in memory, what is an memory address, what is a pointer, what is a reference, what is a counted reference, what is a statically allocated memory, what is a stack, what is a memory allocated on the stack, what is a dynamically allocated memory. What are programming languages, how the constructs are translated to the above mentioned things. What is a loop, what is a procedure/function, why OOP was introduced.

With respect to that learn the very basics of C (a bit of syntax, memory allocation, basic loops through arrays, getting touch with an address, peeking into memory, learning what a pointer is, how it can and should be used, what are the dangers), and stop.

Then learn basics of Python (easy to get, easy to start with, nice syntax, understandable, quite capable, quite powerful (fast) for that category of languages, much higher level abstractions, trade-offs that makes the language simpler to use at one side, but slower at other side of the coin. As a hybrid language, you can learn how to create the plain blocks of code, how to define functions, how to declare classed and use the OOP. Think about how to map what you have learned from C to the Python case, what is hidden behind the veil, what constructs are available, what are hidden. Later, you can learn the basics of a functional approach to programming with Python (to understand what does it mean; but there are better languages to use for that kind of programming).

Then peek to C# or Java to compare with Python and C. They are (almost) pure OO languages, unlike Python, and what it really means. What are to pros and cons of pure OO languages, how the missing features are mimicked. (Actually their hybrid nature is only a bit hidden.)

Then start with C++ that is a hybrid language.

The second approach is to download a framework, pick the language, and write a web application without understanding what is done inside. You will get the result fast. Then ask the questions, search for the answers. You will probably gradually follow the first path in a more complicated manner. I cannot tell what is a better approach in today's world. However, once you start with the second approach, your time may be consumed by programming so much that (without some discipline) you may never get the basics deeply and correctly.

Author Comment

by:taha agamal
ID: 42055288

I really appreciate your help thank you very much you explained what really I need.

thank you master

Author Closing Comment

by:taha agamal
ID: 42055291
thank you guys from my deep heart

Featured Post

Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

What do responsible coders do? They don't take detrimental shortcuts. They do take reasonable security precautions, create important automation, implement sufficient logging, fix things they break, and care about users.
If you are a mobile app developer and especially develop hybrid mobile apps then these 4 mistakes you must avoid for hybrid app development to be the more genuine app developer.
The goal of the video will be to teach the user the difference and consequence of passing data by value vs passing data by reference in C++. An example of passing data by value as well as an example of passing data by reference will be be given. Bot…
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

607 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question