Question:
Attention Computer Programmers?
anonymous
1970-01-01 00:00:00 UTC
Attention Computer Programmers?
Nine answers:
MacO
2007-12-15 18:52:07 UTC
Use the right tool for the job. For drivers, C and maybe even some assembly. If you want to write a rendering engine or something that has to be very fast, again C. If you want to do Rapid Application Development for webapps, maybe Python w/ Django (framework) or Ruby on Rails (Rails is a framework). Do not learn Visual Basic if you want to be able to write programs for people using different operating systems--it only works for Windows. C++ is like C with object orientation (check Wikipedia if you don't know what that is). Java is good for rapid cross-platform development but has speed issues. Perl is for text parsing.



Now, please note that you asked for "skills" and named languages. Languages are not the skills. They are only the tools. The SKILLS you need are very good problem solving skills, the ability to break problems and solutions down into the smallest possible parts, and you should learn about a lot of different programming paradigms. Programming paradigms are things like functional programming (only recursion, no iteration, all variables are really constants), object oriented, procedural, parallel, etc. They are in some ways also just tools, but the more you learn and the better you know them, the better you get at thinking and figuring out how to break it down.



In short, the skill you need is you need to know how to think. Most people are under the impression that they know how to think. They're wrong. To learn how to think, study some discrete math. Discrete math is not that rote-memorization plug-numbers-into-equations junk. Discrete math is where you make the equation. You have to become your own Carl Friedrich Gauss.
Fred W
2007-12-15 23:12:35 UTC
Steps to becoming a Programer



1 - Programmers write programs. Sounds simple, but this is in the same category as "Writers write". Continual refinement of your craft is important.



2 - A good understanding of underlying principles is important. Study from the best. A good book to start with is "Structure and Interpretation of Computer Programs" (SICP, available in full text on the Web). You don't have to know ANY programming to start this book, and it will teach you SCHEME. Study Linux, and supporting software, or Solaris (on an ongoing basis).



3 - Algol 68 Revised Report. Read and digest. Kernighan and Plauger's "Software Tools in Pascal". Read and digest. W. Richard Stevens "Network Programming" book. Read and digest. Kernighans C book, Stroustrups C++ book. Add those to your library (you will now know enough to make sense of these books).



4 - Wirth's Pascal (you will now understand why). Add in SNOBOL4. Smalltalk 80 (I would study Smalltalk 80 BEFORE C++, after C). Add in Rivest's Algorithms book, Knuth's books (the Art of Computer Programming).



If, during this study, you are STILL writing programs, and enjoy it, you will be well on your way to being a programmer.



At this point, I would hire you. I would expect a knowledge of techniques and algorithms and an ability to apply the knowledge to problems. Application is important and is the thing that actually writing programs will teach. Pick on "open source" programs to start, or do things like writing your own editor, or programming language. (complex, possibly stupid, but personally satisfying).
cd4017
2007-12-15 19:54:39 UTC
The knowledge of specific language is not that important. What is important is

1/ Your capacity to translate concepts, ideas, requirements into code.

2/ Your ability to write easy to understand modular structured code

3/ Your ability to dig in the code of other people

4/ Your capacity to find out where the problems are in your code



Most of the time the language will be imposed by non technical reasons.



But you need experience in an object oriented language like C++ or JAVA. And C or C++ are useful to be familiar with low level programming where memory address manipulation is needed.



Anyway learn as many languages as you can because the ability to learn a new language quickly will be valuable.
MH
2007-12-15 19:09:55 UTC
I am a professional computer programmer.



There are many paths to becoming a professional programmer (most programmers these days go by the title "software engineer" or similar). Most beginning programmers these days first get a bachelor's degree in computer science or software engineering. There are only a few who skip the step of getting a 4-year college degree. But, for example, Bill Gates himself was a college dropout (though he was clearly capable of finishing).



As for programming language, the dominant one changes over time and it depends on what field you're in. A good language to get started with is Python.

http://www.python.org



The real skills you need are: creative thinking, critical thinking, precise logical reasoning, and the ability to focus your attention on a problem for an extended period of time. If you don't have these, you won't be a good programmer. College will hopefully help you gain these skills. But, even before you go to college, you will be helped out immensely if you already know the basics of programming.



There are also certain soft skills you will have to pick up. You will have to deal with large amounts of difficult to comprehend code. You will have to deal with incomplete and changing specifications. Perhaps you will have to deal with people subtly trying to sabotage you (I haven't so far, as far as I know).



But please, don't take my word for it. Do some of your own research. Here's an example:

http://www.paulgraham.com/college.html
Tarun S
2007-12-15 18:50:48 UTC
Mostly all the programming languages can be learnt by learning their SYNTAXES which is no big deal, but for being a good programmer u really need to hav good logical thinkin' and be good at maths.

ALGOs are same in all programmin' ,just d implementation is a bit dif..
DogmaBites
2007-12-15 21:34:33 UTC
For raw skills, math ability is the most important. Algebra, arithmetic in different bases (base 16 and base 2 are very important), logic operations.



Thinking abstractly is very important, though this can come with experience.



As far as languages, as other people have said this definitely varies as time goes on and depends on the job at hand.



I would say C in not as important as it once was. It is still important in OS kernel and embedded software but for main stream software and learning I would skip it. You have to learn too much minutia to get anything done. Of course, if you are interested in the real down at the hardware stuff you should learn it eventually.



My suggestion for a first language is one of the modern garbage collected languages. This way you can learn good practices, get stuff that runs without the investment that C takes. Plus they have more extensive libraries so you are not re-inventing the wheel. I think Python is a good start, so is Java and C#.



A lot of the work today is C++ (which is my specialty) so I think it is a good language to eventually learn, I just don't think it is a good first language. It's better than C, but there are still some difficulties. I don't want to dissuade you too much, I think it is a very good language for large scale projects.



For education, I suggest at least a 4 year bachelor's degree. It doesn't have to be precisely in Computer Science (my BS is in Physics), but it should be something math heavy. Eventually you should get a Masters, but that can be done later if you choose (though there is benefit in getting them gone together).



The biggest thing is interest. If this is something that fascinates you, things will work out no matter which specific language or degree you choose. If it's not something that interests you, sitting in front of the monitor all day trying to figure out where it's doing what you said instead of what you mean will drive you nuts.
Whatever
2007-12-15 18:59:01 UTC
You can check the job listings to see what they're using in the kind of work you want to do. There's work available in all of the languages you list. But if you're just starting, I'd recommend learning an object-oriented, like c++ or java, so you start thinking in object-oriented terms right from the start.



Basically, once you become an experience programmer, you shouldn't have any trouble picking up a new language.
Agent
2007-12-15 18:42:59 UTC
It depends on what profession you want. If you want to specialize in C, learn C. If you want to learn C++ learn C. You want to start with a BASIC language then work your way up. C can be a bit hard for some people, so I recomend starting with BASIC. DarkBASIC (The Game Creators) is what I started with, but it is very simple.
Neeraj Yadav♄
2007-12-15 11:12:04 UTC
The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software.One who practices or professes a formal approach to programming may also be known as a programmer analyst, software engineer, computer scientist, or software analyst.



Well i am a Java Programmer and i have followed following chronlogical sequence



Step 1:

C /Basic this will really help you develop logic and implementing it in real program(code).



You may come to know about various commonly used patterns and Algorithm,while implementing it with C



Step 2:

OOP C++ and Java was next step

As oop languages provide more modularity, flexibility,better implementation of real life problems.



You gonna get to know much of syntax which will be needed in further Development ulterior.



Step 3

Now comes the Choice of Open source/Close Source



Close Source projects are those who are largely governed by

Microsoft tech. and others.



Open Source projects is much easier to follow,since you can have better Resources and helps. Like Sun/Apache...





Advisably ,Web Application Developement ,as it is Hot at the moment.



So,You 've got a Choice between

Java/J2EE and Visual Studio.Net



That is up to you which one you gonna prefer..



Yet, having good concept in C and C++ can lead you to be very successful at System Programming.





Visual Basic has limited requirements now days.As matter of fact VB.Net have replaced it.Yet,having knowledge in Vb will help you to deal with most of IDE available today.





There's another option

PHP/MySQL



It's recommended if you want to be self employed.





Synchronal ways...you need to know DataBases as every bussiness application has to deal with them.



Oracle/Mysql/DB2/Msql others can be concurrent streams too..in case if you want to go with Databases.They are always been in demand.





ERP- like SAP/Oracle/CRM are other fields they do need

programmers too..



In my case i have chosen open source,i prefered to go with JAVA/J2EE as i have better knowledge resources ,deployment is easier and not to forget the only drawback that is long learning curve.Yet,its very progressive and i am proud to work on worlds best financial and banking product *Flexcube*





Hope this will help

Cheers:)


This content was originally posted on Y! Answers, a Q&A website that shut down in 2021.
Continue reading on narkive:
Loading...