The Lounge is rated PG. If you're about to post something you wouldn't want your
kid sister to read then don't post it. No flame wars, no abusive conduct, no programming
questions and please don't post ads.
No. They are just playing their roles as spoiled little babies, which has gotten them into our houses. Besides that, they know no laws, no bosses and only do whatever they want. No other creature in the world has come so close to ideal anarchy.
"I don't know, extraterrestrial?"
"You mean like from space?"
"No, from Canada."
If software development were a circus, we would all be the clowns.
I taught myself to program some 30 years ago and tried to keep up with the evolution of C all the way to C# and WPF. However, I always felt that there were gaps in my knowledge because I was never involved in a formal programming course. So a fortnight ago I came across an intermediate level Microsoft C# programming course offered on-line by edX. I promptly enrolled and finished the course in about 10 days of intensive work. I suppose I already knew some 80% of the content, but the rest filled quite a few gaps in my C# knowledge.
I feel my knowledge is more comprehensive and to boot I got a nice Microsoft certificate to hang in our study!
The course used the book: Microsoft Visual C# 2013 by John Sharp. It is available from Amazon and is stated to be for "Intermediate level". You can also take a look at: C# 6.0 and the .NET 4.6 Framework by Troelsen and Japikse that is published by Apress. I haven't read it yet, but it seems very impressive.
Good job on getting through the course; self-improvement is a good attribute to retain.
That being said.. courses have always been a dissapointment for me.
I taught myself 18 years ago: started with C++, got a basic grasp on it in about 2 years.
To get a better understanding, I did 4 years of University (mostly for theoretical data structures), 4 years of engineering (for low-level hardware communication), and one year applied sciences (line-of-business applications).. done it all.
My conclusion so far is that most courses are of dubious value.
The various concepts they teach are.. mm.. sub-optimal for real world scenario's.
In the real world, it's all about the cost of the actual code. Both in terms of project length and complexity to verify / maintain the result.
Translated to concepts, courses ignore the following essential skills:
- figuring out who has already done your job
- how to glue bits together with easy to understand and reliable C# language concepts
- refactoring for ease of maintenance / minimal LoC
(minimal LoC is often synonymous to ease of maintenance, but not always; overly dense lambda's or LINQ queries come to mind here)
- code etiquette; the amount of projects with obtuse naming schemes is too damn high! rsObtuseAF_Flg = true
(..if your naming scheme has more then 3 variations, please refactor before you get hit by a bus)
The most usefull skill I've learned in various courses:
I understand the entire stack. I can pretty much deploy anything anywhere.
(my current favorite stack is URCT with C++ redist and mono to get .NET 4.6 on legacy Windows devices)
The least usefull skill I've learned in various courses:
How to design time-efficient algorithms.
Never do this, they're just not worth it; regular mortals are terrible at maintaining somewhat complex algorithms.
If you have to, always make stupidly easy algorithms, so average people have a good chance of succesfully maintaining your code 10 years from now.
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle