Knowing certain popular programming languages (Java, C++ etc) is only a very small part of being an excellent software developer. They will allow you to get jobs that require use languages. But to be good at this field, you have to know about things like design pattern, software architecture, object oriented programming, design workflow, requirement specification, UML, documentation, user interface. Software engineering is a discipline that encompasses not only coding, but also ways to develop functional software with the least amount of time (not to mention code maintainence). Coders simply get outsourced, software engineer, however, should know how to design things properly. If you don't have programming background then yes, learn a language. I'd suggest Java or C++ and have a good understanding of object oriented programming. Once you know those two the rest is pretty easy to pick up.
2006-07-21 02:59:56
·
answer #1
·
answered by Anonymous
·
0⤊
0⤋
You should learn C in depth, even though you may not get to use it much unless you get into device drivers and OS kernals. It takes you close to the metal - you will learn exactly what makes good code and bad because of that.
C++ is based on C, has the same syntax and capabilities, and generates identical code when writing C-like code. It has a wider range of features (namepsace, objects and so on) and applications. If C++ is on your list anyway, then it is enough to become merely competent in C.
Also learn at least 3 or 4 other languages. Preferably, each should be different from the others. Example- Java, SQL, C++, PHP. Get really good at two of them.
Don't forget the systems and build environments you might use them with. You don't "write code", your develop applications, libraries and tools for specific systems using particular platforms and development software. Omitting any of that knowledge leaves you somewhat crippled.
Also, if you have a particular field in mind (such as GIS, CAD, medical, business or gaming), pick up some domain skills. That is, if you want to do GIS, take a course or two in GIS and cartography. Few things help as much as knowing what it is you are are doing. Stringing lines of code together is one thing, stringing them together - with purpose and understanding - is another.
Make sure your math skills are wide ranging and strong. You rarely will need much beyond high school math (really), but it helps. Most of what you will do is architectural, not mathematical. But once you have to grind some numbers, you had better know the complete ins and outs or your will end up writing code slower and buggier than anything MS ever produced.
2006-07-21 03:54:58
·
answer #2
·
answered by sheeple_rancher 5
·
0⤊
0⤋
The answer is embedded in your question. IMHO to be a good software programmer, one must
1. Have a good understanding of atleast one major language, like C/C++/Java
2. Have a good grounding on Object Oriented concepts
3. Learn a couple of scripting languages like Shell/Perl/Python
4. Know the associated tools of the trade like Makefile, Configuration Management etc.
But having said this, the above are necessary but not sufficient to become a good software developer.
Software is mostly a helper discipline for other domains like Mechanical, Electrical etc except for some core areas like OS, Networking etc. Hence if one is able to understand the problem domain that one is trying to solve, and evolve a good software solution to the problem with quality and within time, then that person is a good software developer.
2006-07-21 01:37:55
·
answer #3
·
answered by swami060 3
·
0⤊
0⤋
I have been a developer for 15 years. If you want to be an excellent software developer, I would recommend that you learn SQL (for database queries), C#, and Flash (for graphical web development). These are all very marketable skills, and will take you a long way.
2006-07-21 03:14:43
·
answer #4
·
answered by Anonymous
·
0⤊
0⤋
You should learn a whole range of programming languages if you want to be an _excellent_ software developer, along with a whole bunch of other things about multimedia, web design, databases... the list goes on! Good luck!
Rawlyn.
2006-07-21 01:57:50
·
answer #5
·
answered by Anonymous
·
0⤊
0⤋
buy a good c++ book start from the beginning and follow all the programing techniques in this language
then move to do more complected thinks
find a project that you want to do for sample an instant messaging software and work around to make this happened.
at the moment you finish you will be better programmer that a Lot of guys that i know
2006-07-21 01:35:01
·
answer #6
·
answered by Javy 2
·
0⤊
0⤋
Get a college degree in Computer Science or Software Engineer. You need to understand algorithms, data structures, software design, data design, numerical methods, statistics, networking protocols, cryptography, etc. You won't learn any of that stuff from a C++ book.
2006-07-21 02:46:38
·
answer #7
·
answered by Anonymous
·
0⤊
0⤋
C++ is a extreme-element programming language, used to jot down application (which incorporates operating structures) for use on quite some personal-pc structures. Ummmm.... no longer attempting to be a snot right here, yet are you positive you're on the most ideal occupation route? or per chance you only pick to modify colleges, because the coach must have defined to you what C++ is on the first day of sophistication...
2016-12-02 01:16:54
·
answer #8
·
answered by Anonymous
·
0⤊
0⤋
actually this excellent definition is depend upon you.
first decide in which field , my mean, whether in networking programming or system programming or database programming or site developer. its upon you, what you decide learn in that field. bt c and c++ are basic language of all. so its good to have a rigid base.
2006-07-21 02:41:29
·
answer #9
·
answered by Anonymous
·
0⤊
0⤋
Use the FREE 'C' compiler, Perl development tools, "Ruby, on Rails" all included in Linux, FREE!
Free tutorials!
http://google.com/linux and search the language you choose.
http://pclinuxos.com is the livecd with huge list of tools, and
http://livecdlist.com has 310 MORE LiveCDroms!
2006-07-21 01:32:14
·
answer #10
·
answered by Anonymous
·
0⤊
0⤋