What do programmers today need to know

Started by
33 comments, last by Shadow1234567890 21 years, 7 months ago
What are the three biggest ''areas'' programmers today need to know. C++ and some API for developing on their platform seems like the biggest requirement. But what about other things, such as Java and scripting languages and what not. And yes I know it depends on the programmer''s job, I am talking about in general.
What do you mean ''Someday become a programmer?'' I'm a programmer right now!
Advertisement
Well, in general - to qualify as a programmer - you should definitly have:

* Knowledge and experience in at least two, better three, langauges of different origins. I WOULD qualify C++ and C#/Java here as two - because they are so different in their core paradigms (garbage collection, mainly). With just one language, it is truly a bad programmer.
* SQL - not a lot, but I would expect every developer to have worked with databases during his educational phase. Not necessarily a pro, but he has to know how to make basic stuff.
* Standard Algorithms and Patterns. Any developer not knowing what a quicksort is or what a facade or factory pattern are - is not worth the money.

Thats basically it for junior developers. Needs to be smart and grasp API''s fast, sure. He should also know his limits - and be willing to fall back onto other people when hitting them. Not necessarily because he is bad, but show me one developer who is a graphics guru :-)


Regards

Thomas Tomiczek
THONA Consulting Ltd.
(Microsoft MVP C#/.NET)
RegardsThomas TomiczekTHONA Consulting Ltd.(Microsoft MVP C#/.NET)
I''d disagree with the first 2 of those, thona.

I know several languages, but I don''t think that makes me a better programmer than someone who knows one. If anything it clouds my judgement about what is the best solution when solving a problem in a specific language.

I''d also say knowing SQL (which I do) is completely irrelevant. Why would this make you a better programmer? I''d say it''s one of those things that you can learn when you need to. Games don''t use SQL very often.

Knowledge of standard algorithms and design patterns, as you say, is an absolute must.

Helpful links:
How To Ask Questions The Smart Way | Google can help with your question | Search MSDN for help with standard C or Windows functions
quote:Original post by siaspete
I know several languages, but I don''t think that makes me a better programmer than someone who knows one.

It gives you a wider perspective on how to approach problem solving.
quote:
I''d also say knowing SQL (which I do) is completely irrelevant. Why would this make you a better programmer?

Personally, I think this could be folded into thona''s first point: to know languages which do things differently. A declarative language such as SQL gives a different perspective to a procedural or OO language. Knowledge of several different paradigms can be very handy.
quote:
Knowledge of standard algorithms and design patterns, as you say, is an absolute must.

Oh yes.
Thanks for the defense.

In particular, I would say that C++ and Java stand pretty much on different sides - weak runtie against strong runtime, in terms of function size, but also in term of features (like garbage collection). (Java being replacable with C#, btw.) Knowing diversity helps you - otherwise the "programmer" becomes a "C++ programmer" - or a "VB Programmer". In the extrreme unable and slow to get used to another language and to learn. Diversity rules.

For SQL, that is as far off procedural/oo languages as you can get. Declarative, handling data (and not primarily functionality), with concepts such as thread serialisation built into it''s core (through locks). And show me one programmer that never has to use a database in his whole career? It is definitly an exerience - and experiecne and common sense are what programmers needs primarily.

I know most people argue this - on the other hand, 75% of the programemrs available out there are not wirth their money :-)


Regards

Thomas Tomiczek
THONA Consulting Ltd.
(Microsoft MVP C#/.NET)
RegardsThomas TomiczekTHONA Consulting Ltd.(Microsoft MVP C#/.NET)
I think diversity is a good thing. As far as I know C++ and Java are two things that most programmers should know. I think databasing is something that programmers should know. I mean databases are used for everything, including games, right? I don''t know if something like Visual Basic is a must-know. Can the .NET languages be used on other platforms? Visual Basic 6.0 doesn''t seem as important to know as C++ because VB is only for Windows, but C++ is a language and of course can be used on any platform. That is why I always say Visual Basic is barely a language.

What do you mean ''Someday become a programmer?'' I'm a programmer right now!
Regarding algorithms and design patterns: what books/resources would you recommend as a good reference for those algorithms that every programmer should know? I think most people have heard of Knuth''s classic, ''The Art of Computer Programming'', but does anyone have other suggestions that they feel are more relevant/modern/concise/cheap/whatever?
Sedgewick''s pretty good for algorithms. The Design Patterns book is the obvious choice for DPs.
How about showing dedication and raw determination? That about covers it all.

Peace out,
Mathematix.
quote:Original post by Mathematix
How about showing dedication and raw determination?

Yes, but its no good if its directionless.

This topic is closed to new replies.

Advertisement