Page 1 of 2 [ 28 posts ]  Go to page 1, 2  Next

FedUpAsp
Snowy Owl
Snowy Owl

User avatar

Joined: 16 Jun 2013
Age: 43
Gender: Female
Posts: 149

20 Jul 2013, 4:48 am

All right, it's clear I can't just jump into computer programming without a proper background... but what kind of a background do I need? From high school on:

Boolean Alegbra
Flow Charting

It's a sparse list. What am I missing?



monsterland
Veteran
Veteran

User avatar

Joined: 30 Dec 2009
Age: 42
Gender: Male
Posts: 851
Location: San Francisco, CA

20 Jul 2013, 4:56 am

I wrote my first game (a Soko-ban clone) at the age of 11, in BASIC.

The skills that were required of me at the time were ... basic algebra, understanding of two-dimensional arrays, understanding of how a basic internal cycle of a game works.



sppp
Tufted Titmouse
Tufted Titmouse

User avatar

Joined: 16 Jul 2013
Age: 25
Gender: Male
Posts: 28

20 Jul 2013, 5:16 am

You absolutely can just jump right into it. I started aged about 10. You'll learn everything you need on your way.



oddfellow
Yellow-bellied Woodpecker
Yellow-bellied Woodpecker

User avatar

Joined: 4 Sep 2006
Age: 53
Gender: Male
Posts: 54
Location: USA

20 Jul 2013, 9:38 am

Lots of venues to learn programming here: http://thenextweb.com/dd/2012/10/21/so- ... rn-online/


_________________
"I don't know if it's art, but I know what I like."


Tomatoes
Snowy Owl
Snowy Owl

User avatar

Joined: 25 Jun 2012
Gender: Male
Posts: 131

21 Jul 2013, 1:16 am

Try to learn iteratively if possible.
Learn something specific and then apply your knowledge.
Then learn something new in relation with what you have learned.
For every thing you learn, try to relate it to any thing you learned before.
Eventually you'll have gained a lot of knowledge in no time.

There is no standard academic way to learn computer programming.
Everyone learn differently. If you know boolean algebra then some aspects of programming will be simpler.
While creating programs, you should flowchart in your head if possible, because writing everything on paper before programming will takes a lot of time.

Also, knowing how the compiler/interpreter reads your programs before executing them will make it easier to learn a lot of different syntaxes rapidly.
It is called parsing/lexical analysis.
If your language has garbage collection it will be important to know how to set objects to null as soon as you don't need them anymore.



Robdemanc
Veteran
Veteran

User avatar

Joined: 30 May 2010
Age: 49
Gender: Male
Posts: 2,922

27 Jul 2013, 12:50 pm

We studied Mathematics for Computing at Uni. It included:

Functions and Relations
Boolean Algebra
Propositional Logic
Set Theory
Matrices & Vectors

I reckon if you understand Boolean algebra and Logic you will be fine.



Cilantro
Veteran
Veteran

User avatar

Joined: 7 Apr 2013
Age: 31
Gender: Female
Posts: 646
Location: Minnesota, USA

28 Jul 2013, 4:13 am

Background:
- 3+ months experience in turning on computers

http://www.cplusplus.com/doc/tutorial/
http://www.python.org/about/gettingstarted/



FrodoHackins
Butterfly
Butterfly

User avatar

Joined: 26 Jul 2013
Age: 36
Gender: Male
Posts: 13

28 Jul 2013, 3:45 pm

A tutorial like this one may be useful for teaching you some of the very basic building blocks of programming. Google the following search:
learn to program pine

(I can't post URLs yet...)

If you can get more familiar with those elements, you will be better prepared for further study -- independently or with teachers/professors.



Kurgan
Veteran
Veteran

User avatar

Joined: 6 Apr 2012
Age: 31
Gender: Male
Posts: 4,379
Location: Scandinavia

01 Aug 2013, 8:25 am

FedUpAsp wrote:
All right, it's clear I can't just jump into computer programming without a proper background... but what kind of a background do I need? From high school on:

Boolean Alegbra
Flow Charting

It's a sparse list. What am I missing?


You also need to learn about algorithms, data structures and the big O notation. :)



Vectorspace
Veteran
Veteran

User avatar

Joined: 3 Oct 2012
Age: 30
Gender: Male
Posts: 1,104
Location: Germany

01 Aug 2013, 1:21 pm

It depends a lot on what you want to do. If you want to program microcontrollers, you need to learn about electronics. If you want to calculate things, you need to learn about algorithms. If you want to process data, you need to learn about data structures. If you want to do something that involves floating point computations, you should learn the basics of numerical mathematics.

Those aren't really "pre-programming" skills – you can learn a lot on-the-fly.

In a professional environment, knowledge about quality management, unit testing and project management is often demanded.

You need a lot of experience to learn how to write good code. I see a lot of bad code written by people who have no knowledge about computer science. Such code may or may not work well, but it's very hard to read and to maintain. A common reason for this is that the code uses bad abstractions or none at all ("spaghetti code").



Kurgan
Veteran
Veteran

User avatar

Joined: 6 Apr 2012
Age: 31
Gender: Male
Posts: 4,379
Location: Scandinavia

01 Aug 2013, 6:41 pm

Vectorspace wrote:
It depends a lot on what you want to do. If you want to program microcontrollers, you need to learn about electronics. If you want to calculate things, you need to learn about algorithms. If you want to process data, you need to learn about data structures. If you want to do something that involves floating point computations, you should learn the basics of numerical mathematics.

Those aren't really "pre-programming" skills – you can learn a lot on-the-fly.

In a professional environment, knowledge about quality management, unit testing and project management is often demanded.

You need a lot of experience to learn how to write good code. I see a lot of bad code written by people who have no knowledge about computer science. Such code may or may not work well, but it's very hard to read and to maintain. A common reason for this is that the code uses bad abstractions or none at all ("spaghetti code").


Typically, most newbie classes have a lot of copy-paste code, if statements and tedious workarounds. Learning to optimize better (the characteristics of data structures, when to use certain algorithms etc.) will give the OP a flying start.



AspieWithSkills
Butterfly
Butterfly

User avatar

Joined: 2 Jun 2013
Age: 58
Gender: Female
Posts: 12

14 Oct 2013, 5:08 pm

Python is a good language to start with these days...


_________________
Thank you, Lord, for another day.

-- AspieWithSkills


FrostSA
Tufted Titmouse
Tufted Titmouse

User avatar

Joined: 9 Sep 2013
Gender: Male
Posts: 34

15 Oct 2013, 1:50 am

A good mathematical background. Concrete Mathematics: A Foundation for Computer Science by Donald Knuth would be a good start, as would his Art of Computer Programming series.



ScrewyWabbit
Veteran
Veteran

User avatar

Joined: 8 Oct 2008
Gender: Male
Posts: 1,191

16 Oct 2013, 1:16 pm

Depends on what language and what types of things you want to learn, and how complex / low-level they are.

Things that would possibly help to know to get started...

boolean algebra
how to deal with non-base 10 numbering systems (binary, octal and hexidecimal, and how to convert go between the three of them quickly)



klausnrooster
Snowy Owl
Snowy Owl

User avatar

Joined: 7 Jan 2012
Age: 56
Gender: Male
Posts: 144
Location: Not my favorite place, I can tell you that.

23 Oct 2013, 10:20 pm

Depends on what you want to do and you can jump in, then out to some theory, then back in to coding. Python is friendly. Javascript great if you avoid a few habits (read "Javascript, the Good Parts" by D.Crockford). I found Excel VBA very convenient learning environment but the other languages have some nice traits VBA lacks. There are many languages, it's fun to hop around. But you're better off pick one soon and sticking to it until you're very comfortable doing it. Tons of tutorials online. Data structures, algorithms, some discrete math. Oh, do spend a little time with language Prolog. Very different and very useful.