Click here to Skip to main content
15,888,579 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Background:
I learned a little bit of programming in school, namely loops whiles and pretty much NOTHING but syntax and the basic programming. The language of choice at the time was Turbo Pascal (Note: Not visual)
Since then I have learned Delphi 7.0 some minor C#, Silverlight, .NET, ASP, MVC.
I've been programming for a total of around 3 years and whilst I'm good enough to solve the problems given to me, I constantly become annoyed with how little actual knowledge I have about the workings of a computer on a lower level, programming concepts like OOP and FP pretty much anything to be honest.

Resolve:
I want to broaden my knowledge as quickly as possible but not in a slap dash sense of just knowing something exists and not knowing how it works. I want to know as much about it as possible to be more than competent in whatever it is that I learn.

Question:
Where is the best place to get resource material and help on my route to becoming "The ultimate programmer" from beginning to advanced.

What I would like to achieve is
Multi platform development without having to have huge chunks of code for any one platform, I've learnt that generic is best. I don't want to have to rely on any one specific framework to get things to work and then realize it has absolutely no relevance if i want to have a mac version of my app. I've read that dll's are about the best way to do this, but I'm not sure if one dll will indefinitely work on any platform once compiled.
The ability to take advantage of the x64 architecture
Ability to make use of multicore processors
Which programming language would best suit my goal and what tech's should i concentrate on to start with

Anything would be absolutely great. Up until recently programming was merely a means to an end but as of late its more a passion to be better.

If there are podcasts, blogs, forums that I should be interested in please recommend them.

This might seem trivial and an annoyance to some but we all start somewhere, fortunately I found codeproject :D
Posted

Hard to say, but certainly books and websites are a good learning tool.
If possible, look to local colleges for evening classes to get an idea.

MS has various resources that are definitely worth a look, and of course this site!
 
Share this answer
 
If you are so very interested in advancement I recommend becoming member in a professional association like the "IEEE-Computer Society" from there you can access things like the online-courses by element-k for free! The membership-fee is fair and the value you get from really attending these courses plus the big community of professionals you enter is good. Also you get a lot of books and other publications for a really good price.

Next is to create some idea of your own, open a little project and publish it. For example in codeproject, then maintain that software. While learning from books and courses you learn the most from really solving real problems in reality.
 
Share this answer
 
Becoming a good programmer is like becoming a good musician: there's only one way to do, which is by practice. Try to code for different types of projects, exchange ideas with other programmers (some with a higher level than you, some with a lower level than you), ...

Reading articles about design patterns is sometimes a good thing because once you are aware about a specific pattern, you can keep it in mind and try to use it later. You can even try to make a very small project that uses the design pattern just to be a bit more familiar with it.

Now concerning the cross-platform part: dll's are not cross-platform. They are binary code so they are as portable as your executable file :-). Your code might be cross-platform but then you'll have to recompile it for the different platform (I'm talking here more specifically about C++).
If you want to make an application with a GUI, there are some free cross-platform libraries (like Qt, wxWidgets).

But, if you are aiming for cross-platform development then looking at a cross-platform language isn't a bad idea (like java for instance). It really depends on the type of app you want to develop. If it is something computation intensive, then I would stick to C++ but if it is a desktop app, java could be an option. Of course, it means that a JVM should be installed on the target computers, which could be a restriction.
 
Share this answer
 
// Where is the best place to get resource material and help on my route to becoming "The ultimate programmer" from beginning to advanced ?

It may will be a way (not a place)...
...to your practical aim...
...of your practical task :)
 
Share this answer
 
Start reading, lots.

For example for a good overview of how computers work have a look at Tanenbaum's "Structured Computer Organisation."

Get a few good textbooks on how you idiomatically use your programming language. Not books on syntax, but the most effective ways of describing ideas in the language.

Grab a good book on OO design AND programming. Have a look at some of the books by Bob Martin - "Agile Software Development" and "Clean Code" spring to mind as they're about all aspects of the software engineers trade.

Finally have a gawp at something about the systems you want to program. Something like "Windows Internals" By Solomon et. al. and "Mac OSX Internals" By Singh.

And as Cedric says, practise!

Cheers,

Ash
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900