What to program - beginner

Soldato
Joined
22 Oct 2005
Posts
2,883
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?
 
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++...
 
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:
How about a course enrollment or appointment/booking programme, not too hard and you'll have to use a wide range of coding techniques.
 
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.
 
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.
 
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:
I have heard it's a very nice language (from people who like Java) although I haven't had a play yet :) Perhaps explore that instead OP.
 
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. :)
 
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?
 
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.
 
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 :)
 
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.
 
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:
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:
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