I want to learn how to program

doctor11

Solid State Member
Messages
12
I don't know anything about programming, so if you guys could teach me the basics of programming I would be highly appreciated.
 
the first foundation that you really want to learn for programming is logical progression.

where do you start,
where next.
is there a deciscion to be made.
where do you go when a user answers yes to a question, what about if they answer no.
what next,
do you need to perform an action several times, (is it easier to write print hello ten times or write a loop to do that for you?)

Don't worry about the language, learn the logic first, how do you need your program to work!
 
the first foundation that you really want to learn for programming is logical progression.

where do you start,
where next.
is there a deciscion to be made.
where do you go when a user answers yes to a question, what about if they answer no.
what next,
do you need to perform an action several times, (is it easier to write print hello ten times or write a loop to do that for you?)

Don't worry about the language, learn the logic first, how do you need your program to work!

Hmmmmm i get that and think you are right but at the same time i would disagree and here's my reason.

But first here is why you are right.
Essentially once you understand the process of decision making, if statements, loops etc or summed up as programming logic then almost all languages are "essentially" the same.

Now here's why i disagree that is the best place to start.
Sometimes it can be difficult to grasp the concept of something like an if statement or a loop without without seeing it formatted and being used in a real situation in a working program.

But that really does depend on what type of person you are and how you like to learn things.

My advice and this is purely based upon how i learn best would be to have an idea in your head of what you want to be able to do.
Do you want to be able to build a fancy website with a content management system? Then you might want to look at learning HTML(5), CSS3, Javascript and PHP.

If you want to build windows based applications you might want to look at WPF / Winforms and either C# or Vb.

But either way come up with a project first, so say i'm going to build . . . . i dunno a calculator app! Then go about google etc.

But that is my preferred way of learning and each person will learn better in different ways.
 
the first foundation that you really want to learn for programming is logical progression.

where do you start,
where next.
is there a deciscion to be made.
where do you go when a user answers yes to a question, what about if they answer no.
what next,
do you need to perform an action several times, (is it easier to write print hello ten times or write a loop to do that for you?)

Don't worry about the language, learn the logic first, how do you need your program to work!

and

My advice and this is purely based upon how i learn best would be to have an idea in your head of what you want to be able to do.
Do you want to be able to build a fancy website with a content management system? Then you might want to look at learning HTML(5), CSS3, Javascript and PHP.

If you want to build windows based applications you might want to look at WPF / Winforms and either C# or Vb.

But either way come up with a project first, so say i'm going to build . . . . i dunno a calculator app! Then go about google etc.

I think you've both hit some important notes here Not only that, but I think there is a distinction which makes both entirely valid too.

Root's post (the top quoted section) is very much the method to adopt when wanting to learn the theory of programming, what sort of constructs form the basis of all programs and computer science undergraduate courses.

Conversely, ssc456's approach is what I would take if I had a particular 'thing' which I wanted to do and learn 'on the job' as it were. However, there are a couple more things which you need to consider prior to taking this approach:

1) Have you read around the subject matter relating to your 'thing' sufficiently to know that a) it's possible to emulate in a program and b) that it isn't overly ambitious for a starter project. The latter here is not as important as the former because compromises can be made at this stage until you are sufficiently experienced to address these issues.

2) 'On the job' learning will appear to be the more productive route, however it can easily lead to bad habits and misunderstandings. This will be no reflection on your ability, potential ability or misunderstanding of the specific information you use to solve any particular problem - however because you will inevitably find answers to issues from a multitude of sources, you will not know what assumptions and/or coding primitives each source uses. This will inevitably result in a 'hodge-podge' program which may well function correctly, but will undoubtedly be either overcomplicated or utilise superfluous codeblocks - both of which will impede the clarity of your code and hence your understanding of it.

I hope that adds a little extra information for you to consider, ultimately I would strongly recommend both approaches and make sure that after you've solved a problem using google or any other authoritative source, that you understand the theory behind exactly how the language features that you've used work - and more importantly, in which scenarios they are suitable and which they aren't.

---- Extra, unnecessary but background context and example of scenario 2) above ---
I studied CS at university and worked as a software engineer specialising in network software applications since, as such I'd like to think I have a very good understanding of exactly what every line of my code does and what the memory and program profiles look like as it runs.

Like most developers, I enjoy the odd bit of web programming etc. outside of work - but I can certainly say with conviction that I do not have anywhere near the same level of understanding of exactly what a page will look like when combining HTML, CSS and PHP despite understanding exactly what various documentation says - it seems like there are always edge-cases which don't match the spec, but this is simply because I've only seem snippets and as such my understanding of the 'spec' is incomplete. This is what I meant in 2) by no reflection on your misunderstanding of the specific information you use to solve a particular problem.
 
Back
Top Bottom