In my ignorant view of software development, I had thought that a language is fairly agnostic to getting the job done. As my ignorance turned into education, which in turn evolved into despair, I discovered that many languages actually hinder getting the job done. Partly because "getting the job done" meant more than implementing the task at hand -- it also meant being efficient at implementing the task -- debugging, testing, time taken to write the code, etc.
Uh I miss C# so much... I was using it for years during collage and uni and even wrote a bunch of articles here on CP. But UNFORTUNATELY I was doing some maintenance tasks during apprenticeship for *one month* and all the recruiters where like "oh we have a Java programmer here". And they did their ironic smiles when I said that I have basically 10 years of uncommercial C# experience and it's more than one month of fixing NPEs in some 5-year old legacy shut.
So... now I code Java full-time... and it's not so bad because there are tools which are workarounds for Java ugliness. But yep, no properties. Oh, and no run-time generics, indexers, object/collection initializers, raw strings, operator overloading (bigNumberA.add(b.minus(c).div(d)).multiply(e)), tuples, Linq, value types, events, convenient syntactic suger like ?. and so on. And don't get me started on pattern matching. Oh! there are fake lambdas which are translated to anonymous classes (in C# you have an expression tree which MIGHT be translated to classes but doesn't have to - it might be like, SQL or whatever).
On the good side, the IDE is almost as good as VS.
I think almost everyone started with C and I agree that C does require developers to learn essentials like memory management etc. I also believe that going the other way around is a more logical learning path with a less steep learning curve.
I should've mentioned that I would definitely put C as a 2nd or 3rd option.
Press F1 for help or google it.
Greetings from Germany
It's everywhere, it's not going anywhere, it's the basis and it teaches what the fluff you are doing. It's easy to fall into the glittery traps of the dozens new languages and frameworks out in the market daily when you can't see that it's all have been done before and that most ideas simply suck.
GCS d--(d+) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
I have not heard this in many years, but it is so true. We are NOT engineers by any stretch of the imagination.
We have the idea of a Software Architect, and that is more fitting to the role, than Engineer, IMHO. 99.9% of us are just plain old boring software developers; programmers if you want to go old school.
they do love their titles. After Microsoft, I worked for an outfit called Sogeti, and they were basically a software architecture and consulting group.
So there were no "devs" on staff, but a lot of people who used to be devs.
It was a weird environment. I eventually bailed because I didn't like being flown to places to "consult" (read, try to rescue mismanaged projects well after they've deathmarched) and basically being used as a corporate axe because the people that screwed up didn't want to be the ones to do the firing.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
also, the definition of engineer does not include "software".
If you design software, than you are a software architect at best, like me. You can have the Software Engineer title, as most companies do that, but don't kid yourself for one second that you are an actual engineer.
Last Visit: 31-Dec-99 18:00 Last Update: 23-Sep-23 0:46