What to program - beginner

Soldato
Joined
22 Oct 2005
Posts
2,802
Location
Moving...
I'm looking at learning a language in my spare time. I work as a software tester so don't really come into direct contact with code, but it's always a helpful thing to know. I did a fair bit of C while at uni but was never particularly good so will be learning from scratch so to speak.

I think I'm going to try C# as it's quite a popular. Was thinking of Javascript as that is what is used at work, but I don't have much interest on the website side of things.

So I think I'm going to read a few online tutorials and maybe pickup a book, but what I was after is what to program after I finish the book, so an actual task, like a backup utility, a simple game etc.

Any suggestions?
 
Associate
Joined
16 Dec 2009
Posts
330
Location
Birmingham
you need to have a look into API's, id have a look into java or C++, they are based upon C but come included with functions for graphics. The syntax is different so it might be an easier approach for you. Ive heard people say that once youve learnt 90% of C you have learnt 70% of C++...
 
Soldato
Joined
7 May 2009
Posts
3,541
Location
London
you need to have a look into API's, id have a look into java or C++, they are based upon C but come included with functions for graphics. The syntax is different so it might be an easier approach for you. Ive heard people say that once youve learnt 90% of C you have learnt 70% of C++...

Or perhaps once you've learned all of C++ you've learned 100% of C :D

C++ is built upon C and includes the original libraries. It also is very good for learning the fundamentals of data types, manipulation thereof and how 'stuff' works. It is also a fantastic language just for giving optional Object-Orientation. So you can learn the basics of programming and Object-Orientation separately and at your own pace.

Once you've 'learned' C++, the lower level language C comes naturally. Also higher level languages come easily, such as Java or C#.

The power of something higher level like Java comes from extensive pre-existing libraries. You do lose a lot of the control over lower-level activity in your program (such as, say, controlling the destruction of objects) in Java however.


C# could offer some good options if you're looking to do a backup utility, but I'd still recommend C++ as a base language to learn, then work from.

If you want to make a simple game using Direct3D or OpenGL, C++ will probably be the best way to go imo. Lovely code and many options for tackling the project. Higher level API code will come from Microsoft's SDK/OpenGL files, so all you'll need is a compiler and to learn how to use their API. Honestly, this would be a longer-term project though, as you'll be learning a language, and then going on to learn a (rather extensive) API.
 
Last edited:
Soldato
Joined
16 May 2005
Posts
6,509
Location
Cold waters
I can't fanthom pointing someone to C++ in 2010. Hairy battle-hardened technologies have their place, but that's not in teaching or sustaining interest via fast results. Start the right-tool-for-the-job mindset early and learn a language that is actually OO (or one that is soley low-level if that's of interest).

I'd try something like a C# GUI app to solve an everyday want or annoyance, a Processing ditty, or a 2D XNA game guided by their tutorials.
 
Soldato
Joined
12 Dec 2003
Posts
8,141
Location
East Sussex
I recommend you start learning Java. Don't get me wrong, C and its predecessors are brilliant languages but I'm not convinced they're great learning tools for beginners.

Build me a library booking system. Have different types of users (students and staff for example) to learn about inheritance and abstraction. Build separate Book and Catalogue classes and have them interact with each other. Give me the functionality to search for books, add books to the catalogue (but not if I'm a student) and so on.
 
Soldato
Joined
16 May 2005
Posts
6,509
Location
Cold waters
C# is essentially Java, only better*. It hasn't much to do with C or C++. If the MS-centricness isn't a problem, it's a no-brainer.

*properties, better generics, lambda/delegates, LINQ, ...
 
Last edited:

RDM

RDM

Soldato
Joined
1 Feb 2007
Posts
20,612
We are being taught using Java at uni. Seems to be par for the course for quite a few CompSci courses and is relatively straightfoward to pickup. Coming from a procedural coding background I am finding OOP to be somewhat refreshing. :)
 
Soldato
Joined
12 Dec 2003
Posts
8,141
Location
East Sussex
OO is the way to go :)

If you're interested in exploring parallel programming then occam-pi is a natively parallel language. It's not very practical but it gets you thinking in interesting ways. The language is a bit crude though.

I always assumed you were 30 or so RDM. Are you a mature student?
 

RDM

RDM

Soldato
Joined
1 Feb 2007
Posts
20,612
I always assumed you were 30 or so RDM. Are you a mature student?

I am 37, so was last in education prior to the majority of my classmates being born...

Really enjoying the course though, never touched Flash before so that is new and while I have done programming I have never done OOP. Still pretty basic stuff as a first year though.
 
Associate
Joined
30 Jun 2009
Posts
405
I can't fanthom pointing someone to C++ in 2010. Hairy battle-hardened technologies have their place, but that's not in teaching or sustaining interest via fast results. Start the right-tool-for-the-job mindset early and learn a language that is actually OO (or one that is soley low-level if that's of interest).

I'd try something like a C# GUI app to solve an everyday want or annoyance, a Processing ditty, or a 2D XNA game guided by their tutorials.

This. C/C++ doesn't really make life easier.

XNA is also cool but i would learn the basics of C# before attempting it :)
 
Soldato
Joined
18 Aug 2006
Posts
10,034
Location
ChCh, NZ
Go for C#. Really. Super easy to start with. Free C# GUI/compiler from Microsoft website with a free version of SQL once you get down to the Database interfacing stuff.

I was forced to start with COBOL which is why I'm a Civil Engineer today and won't touch professional programming with a giant stick. I do hobbyist developing in my spare time and I love it.
 
Soldato
Joined
12 Apr 2004
Posts
11,788
Location
Somewhere
C# is a brilliant language from a practical point of view, but I'm hesitant to recommend it as a "first" language. Perhaps Ruby or Python to learn the basics first? This will remove the hassle of static typing and allow the OP to focus on more fundamental programming principles. Not to mention that both are very elegant and capable languages in their own rights :)

If you're interested in exploring parallel programming then occam-pi is a natively parallel language. It's not very practical but it gets you thinking in interesting ways. The language is a bit crude though.

C# and .NET actually are actually becoming increasingly well suited to concurrent programming, given the functional features and the introduction of the TPL, and in particular the new Async features being CTPed at the moment, which look quite awesome :o

Also remember that under C# can to interoperate fully with F#, which is a pure functional language. For that matter, it can also interoperate perfectly well with dynamic languages like IronRuby and IronPython via the DLR features introduced in .NET 4 :)
 
Last edited:
Soldato
Joined
20 Oct 2006
Posts
2,595
Location
London
Thinking same about the OP, I want to learn as well, I got an idea and would like to see materialise quicker.

I came across this articular today. Very relevant to this topic

Thoughts on what this author says(does he have a point), might shed some light on a worth while code for me to spend time learning

No wonder CompSci grads are unemployed

Source : theregister

Programming is almost wholly absent and if I saw an IT teacher crossing herself when hearing a nine-year-old talking about C# it would not shock me.
 
Last edited:
Soldato
Joined
18 Aug 2006
Posts
10,034
Location
ChCh, NZ
Well. I'm digging into Python right now and is trying to write logistics system for a transport company. For fun, I might add. I could've done it with my eyes closed in C-Sharp but Python is a tad different. It's quicker though. And I'm pretty sure in the long run, easier than C-Sharp.

Anyway, my point was, my mentor is the son of a friend. He just turned 11.
 
Back
Top Bottom