Teaching myself computer programming Where should I start?

In summary, you should start with Python if you want an easy language to learn, and then move on to more difficult languages later on.
  • #1
mariexotoni
56
0
Can someone give me a general sort of outline of what I should teach myself and in what order? or supply me a link that has a neat pdf?
 
Technology news on Phys.org
  • #2
Presuming you want to know some general programming, as opposed to specialized programming of - for example - microcontrollers, I suggest you start with a clean but powerful language such as Python. Here's a good tutorial. There really isn't a general curriculum when it comes to learning how to program. Basically, you learn the basic ideas and a programming language or two, and then you learn whatever you're most interested in. I also often suggest new programmers take a look at Teach Yourself Programming in Ten Years, which I think is a very good read.
 
  • #3
Hello there Marie

Python is a good language to start off, since I heard it is a very easy language to learn. There are some colleges that start off with Java or C++. However if you have a goal in mind you want to accomplish in the long run, you should state it. Different languages are good for different things.
 
  • #4
Hey mariexotoni.

For an environment that's easier to learn and get something up and running, I would recommend something like Python, Visual Basic, and other scripting or interpreted languages. Most people would recommend something like Python, but I actually like BASIC.

Pro's
- Get something up and running quickly, good for creating stuff without having to learn absolutely how everything works
- Good to get a feel of the basic programming ideas and constructs in procedural programming

Con's
- Not a good foundational for general serious coding: things work, but you don't actually know why
- Can be misleading if you aren't aware of the above

Usually from this you go to something a bit more 'in-your-face' like Java, C, C++. These are the kinds of languages used in professional development and also cover the OOP (Object Oriented Paradigm) that is common. This is what a lot of people write code in and especially with C++ since you can compile it to an optimized executable which means code runs as fast as it can if the compiler does its job well.

Pro's
- Better at understanding what is going on (especially for C,C++).
- A good idea of the languages used in serious development

Con's
- Even at this level, you still won't really understand how it all really works

Then if you want to really know what is going on, you look at Assembler and Machine Language. Not for the faint of heart!

Pros
- If you can code in this, then you will without a doubt know how everything works: period
- If you ever need to write optimized code that a good compiler can't create or that you can guarantee runs in x clock-cycles, then this is what you need.
- If for some god awful reason you need to debug a compiled library, then at least you can understand what the hell the error message is

Con's
- It takes a long time to learn properly
- Very painful
- Usually un-necessary for the majority of purposes
- Most compilers are good enough to produce fast enough code

The above is for procedural programming only (Note that VB is not entirely procedural so if you want procedural look at QBASIC for BASIC language)

It's up to you how far you want to go in terms of understanding, but if you are curious and want to write something up quickly, I'd probably check out Python. If you end up going all the way with assembler, then I think you'll pretty much know everything there is to procedural programming for x86 architectures (and easily be able to transition to other architectures as well).
 
  • #5
There's free online CS courses at Udacity. I took the CS101 - How To Build A Search Engine course to learn Python and it was excellent, and now that the course is finished, you can take it at your own pace. It will teach you some basic computer science concepts, and enough Python syntax to build a web crawler and search engine program. It's a very gentle introduction to programming. :)

I'm taking the Web Programming course now, and it's great too, although it assumes you have at least CS101 under your belt.
 
  • #6
what pdf's/videos can i use to learn python? and what should i learn before i start python?

i am starting from nothing, basically. only know how to navigate a computer and install crap.
 
  • #7
i'm afraid of using python..i've played with it a little and it's too.. like
i don't understand it
i type 2+2
and it can generate 4
and it's not because of something i did, or some process that makes sense to me
it just works..

i don't really want to use python. i'd rather start with java..

but i don't think that's a good idea.
IDK
 
  • #8
mariexotoni said:
it just works..

To be perfectly honest, that's the beauty of it. You don't want to have to mess around with messy stuff such as memory management or - worse - accessing CPU registers. There is a huge difference between learning how a computer works on the inside and learning to program.
 
  • #9
okay. i wish i could just know more about it and why it works like that. but I'm playing with python and those udacity courses :) guess I'm just going to start from here

thanks everyone
 
  • #10
mariexotoni said:
i wish i could just know more about it and why it works like that.

Nothing's stopping you from learning more, of course. :smile: The Wikipedia page on computers should give you a general idea of how things work. Though, if I may make a suggestion, I would only seriously start learning about the underlying physical architecture once you have some programming experience under your belt - preferably in a lower level language such as C. Then, you can get started with assembly (most likely under the x86 architecture, which you're probably using if you have an Intel or AMD processor) and learn exactly how stuff works along the way. (Assembly Langauge Step-by-Step is a particularly good book.)
 
  • #11
I think you will like Udacity! :) Make sure to check out the discussion forums there's a great community of students there.

Java will be more complicated than Python, and even in Java, you will perform the 2 + 2 calculation and not see how it works. I think Python is a good starting language because you can get results quickly without having to make a framework for your program - which is 90% of the programming battle.

Focus on solving some problems, you will learn things along the way and the next steps will become clearer to you. The language you use is not as important as understanding how to take a problem and break it down into something you can program. If you learn Java you will spend more time learning object oriented concepts which are not necessary for basic programming.

Project Euler has a nice list of problems you can try, some are easy, some are hard, see how you go.
 

Related to Teaching myself computer programming Where should I start?

What is computer programming?

Computer programming is the process of designing, writing, testing, and maintaining instructions for a computer to execute. These instructions, also known as code, can be written in different programming languages and are used to create various software and applications.

Why should I teach myself computer programming?

Learning computer programming has become increasingly important in today's technology-driven world. It can open up a wide range of job opportunities and enhance problem-solving skills, logical thinking, and creativity.

Where should I start when teaching myself computer programming?

The first step in teaching yourself computer programming is to choose a programming language to learn. Some popular options for beginners include Python, Java, and JavaScript. Then, familiarize yourself with the basic concepts and syntax of the language by using online resources, tutorials, and practice exercises.

Do I need any prior knowledge or experience to teach myself computer programming?

No, you do not need any prior knowledge or experience in programming to start learning. However, having a basic understanding of computer systems and how they work can be helpful.

How long does it take to become proficient in computer programming?

The time it takes to become proficient in computer programming varies for each individual and depends on factors such as dedication, learning pace, and complexity of the chosen programming language. With consistent practice and dedication, it is possible to become proficient in a programming language within a few months.

Similar threads

  • Programming and Computer Science
Replies
15
Views
1K
  • Programming and Computer Science
Replies
16
Views
1K
  • Sticky
  • Programming and Computer Science
Replies
13
Views
4K
  • Programming and Computer Science
Replies
11
Views
1K
  • Programming and Computer Science
Replies
17
Views
4K
  • Programming and Computer Science
Replies
8
Views
416
  • Programming and Computer Science
Replies
3
Views
913
  • Programming and Computer Science
Replies
29
Views
3K
  • Programming and Computer Science
Replies
11
Views
795
  • Programming and Computer Science
2
Replies
54
Views
3K
Back
Top