Click here to Skip to main content
15,891,529 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hello, I am an aspiring programmer who is still in the process of clearly defining the differences between languages, researching which are the preferred starting language(s), how to progress learning multiple languages, where to begin, and which program language to begin with. After considerable time deciding how best to start, I purchased Steve McConnell's "Code Complete" (2nd edition) and currently still reading, I've also began using an android app "Learn Python" to have the hands on aspect, while starting out. Read the book for theory, use the app to get better acquainted with the programming atmosphere, rules, system, etc. Progressing with these 2 sources is definitely helping, but my question is, should I, or is there a better way to start learning, and is Python good to begin with? From what I understand Python is a very useful and widely used language for new devices and emerging technology, but is it better to start with C++ or Java, HTML, I've heard mixed but seemingly positive things about Linux. Researching this on my own has been informative, although I'm not sure how much, being so new to this kind of terrain on computers. Can anyone suggest some way that may be optimal for learning to code? I would like to learn to do as much as possible, and realistically what to expect in the world of programming, as far as how people usually begin in this field. I have been pursuing learning programming for a few years now, trying to learn where to begin, seeing about colleges and similar programs that teach things relevant, but financially that will have to wait, currently building credit to apply for a loan eventually, then pay for something credible, such as certification, or a degree. It has been a slow process attempting to find all the right direction, alone, so now I am trying to get involved in the online forum community, and learn as much as possible from people who actually have experience with...well, all or any of the above. Thank you for taking the time to read my question(s) and for any response.

What I have tried:

I have tried "Learn Python" (google play app). Youtube videos on learning to code different languages, currently reading (near 1/4 through) Steve McConnell's "Code Complete"(2nd edition), and general reading on programming.
Posted
Updated 30-Apr-18 9:37am
Comments
Jon McKee 28-Apr-18 23:29pm    
Make things. It sounds stupidly simple but I'm serious. Make things. Come up with an idea, even if it's been done before, and make it. Doesn't matter what language or if it's super simple like a calculator. The biggest secret no one will ever tell you is all languages are basically the same. Sure some are tailored for specific purposes but there's an enormous amount of "sameness" and topics that translate between languages - just different syntax and maybe a catch here and there. The reason people suggest languages like C# to start with is because it's popular and attempts to prevent you from shooting yourself in the foot. Something that a language like C++ gladly lets you do.

At the end of the day a language is just a set of tools. The important part is to develop your problem-solving skills and get comfortable with solving problems using those tools. It sounds like you're on the right path and Code Complete is a great book. If you're interested in web development the site FreeCodeCamp has an awesome free guided program to get you started there. It also has algorithm challenges I absolutely adore. Cheers!

I have written an article How to start the homeworks or a developer career. Most important is to know what you want to code, because that defines the tools and language. For learning is C++ is best because you must code everything and so have direct access to the memory. You see directly how the bits are flipped.
 
Share this answer
 
Although KarstenK's advice is good, another approach would be to look what language offers the best perspective on getting a job.
According to this article, you would be best off learning Javascript or Python: The 15 most popular programming languages, according to the 'Facebook for programmers'[^]
Personally I don't like these languages very much, the downside to Python is that it is very slow, and Javascript ... for me as a .NET developer it's kind of a mess.
But of course reality is that these languages are the most popular, so we have to live with that I guess.
 
Share this answer
 
You have to know that you can do pretty much anything in any language, simply some languages are harder for beginners because there is more pitfalls to handle.
You need to master a set of techniques that are the basis of the job and are not linked to a language.

Advices:
- Start with an easy/safe language: VB, Java, C#, not C or C++. I do not recommend to start with Python either because of the usage of indentation.
- Read documentation / Follow tutorials (a lot of them)
- Start with tiny/useless projects, the purpose is to learn programming, not doing something useful.
- Start with console mode programs (no fancy graphics, no mouse)
- Learn debugger (an incredible learning tool)
Debugger - Wikipedia, the free encyclopedia[^]
Mastering Debugging in Visual Studio 2010 - A Beginner's Guide[^]
- A problem ? Google is your friend.
- Learn Algorithms and Data-Structures.
- Learn Boole algebra
- Learn one or more analyze methods, E.W. Djikstra top-Down method is a good start.
Structured Programming.pdf[^]
https://en.wikipedia.org/wiki/Top-down_and_bottom-up_design[^]
https://en.wikipedia.org/wiki/Structured_programming[^]
https://en.wikipedia.org/wiki/Edsger_W._Dijkstra[^]
https://www.cs.utexas.edu/users/EWD/ewd03xx/EWD316.PDF[^]
- Learn SQL
- Learn Databases design and Administration
Introduction to database design[^]
1NF, 2NF, 3NF and BCNF in Database Normalization | DBMS Tutorial | Studytonight[^]
- Learn Regular Expressions

Interesting link:
stanford.edu: Learn to Program[^]

There is no shortcut to knowledge, no one can learn for you, you are the only one that can do it.
Remember the exercises and little projects are not here to make something useful, they are here to teach you programming.
 
Share this answer
 
Volunteer to build / maintain your community's or group's web site.

You can start with a "static web page"; progress to a "site"; add "dynamic" content; etc.

Gives focus to a learning plan without being totally academic.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900