learn programming

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,
taha agamalAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

John TsioumprisSoftware & Systems EngineerCommented:
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
OR
go to the managed side and take C# and enter the world of .NET
OR
you can learn JavaScript which is by far the hottest language right now in the job market (along with the accompanying Web technologies).
2
ktsenapathyCommented:
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,
Sena
1
taha agamalAuthor Commented:
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.
0
Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

Ryan ChongBusiness Systems Analyst , ex-Senior Application EngineerCommented:
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.
1
John TsioumprisSoftware & Systems EngineerCommented:
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...
1
peprCommented:
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.
1

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
taha agamalAuthor Commented:
THANK YOU Mr.pepr

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

thank you master
0
taha agamalAuthor Commented:
thank you guys from my deep heart
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Programming

From novice to tech pro — start learning today.