Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

I have this study guide...

Status
Not open for further replies.

AMiSM

Technical User
Jan 26, 2006
128
US
Hi!
It seems that this guy (IT employer, I think) went on a rant about what makes a good programmer. I figured it would make a good study guide. Can anybody direct me toward an educational resource or five that covers all of this?


I could probably hunt and peck in the dark, but why hack through the woods if there is already a highway built?
 
Was the question inappropriate?
 
I don't think it's innapropiate, maybe people just don't have an answer for it (at least I don't have).

Cheers,
Dian
 
I think the advice at the bottom of his post covers some of it...
Some advice for college freshmen:

1. Start with C++ or Java, avoid starting with scripting languages:
1. If you’re learning programming for the first time, avoid starting with scripting or loosely typed languages like: PHP, ASP, Perl, etc or Visual Basic. It may destroy your understanding of program execution, data types, memory allocation, etc.
2. Start with C++ or Java. If you want to me to be specific, start with C++, you’ll love it for the rest of your life.. :) It’ll be easier for you to learn (almost) any other language (like: C#, PHP, ASP, etc).
3. If you ask, do you need to know C to start with C++? Or should you learn C first and then C++? C definitely helps a lot for learning C++ but it's not necessary to start with C.
2. If you want to be good programmer, keep on coding at least 20 hours a week for next 4 years :).
3. Never stop learning new technologies that are coming out everyday.
4. Know somethings of many things but be master of one. Know at least one language very well.
I personally love books, the old fashioned paper kind [bigsmile]. You can find a lot of good books convering these topics on Amazon.

You don't mention where you're at in the educational system, but a college or university will cover a lot of these things. The most important thing to do though is actually program. Write things for yourself. Come up with your own projects and dig in.

To learn a lot of the things in the list, I would recommend downloading, installing, and learning Linux. This gives you an opportunity to learn a lot of things, like TCP/IP and other system concepts. It also gives you access to a very good C and C++ compiler.

If your goal is to have marketable skills, I would also add that you need to know relational databases and SQL. For this you can download Oracle for free if it's for educational purposes. You can get it for most platforms. You could learn SQL using something like MySQL, but Oracle knowledge will get you much higher paying jobs in the real world.

Just my 2 cents.

 
Hey, thanks, man! I've actually wanted to use Linux for quite awhile, and I just bought a Gateway AMD64. (It's pretty sweet! :) ) I installed Ubuntu 64 bit, but I'm having trouble navigating. I was using Crimson editor with some compiler or another, but how do you use GCC under linux? I really need to read up on Linux command line.
As far as education, I have fragmented bits and pieces all over the place, some of it functional, some not. Some formal, most just picked up osmotically.

Do you need a degree to get an IT job?
 
I am happy to report that I have officially compiled and run my very first "Hello, World!" under Linux! I think I'm going to like this! :)
 
Cool! If you have the attitude that compiling and running your first "Hello, World!" is fun, then you definitely have the right temperament to be a great programmer.

As far as a degree is concerned, it isn't a requirement to get a job in IT, but it will determine which jobs you can even apply for. It will also determine how much you will be paid.

I'm speaking from personal experience in the US. It may be different where you live if you live elsewhere. I don't have a degree, but I am a very highly paid IT professional. I have a massive amount of experience in many different technologies.

What I've found is that some places won't even talk to you without a degree. Even if you have massive experience and are completely qualified for the position. You could be the best candidate by far, but without a degree, many places will just round file your resume/CV.

Other places will look for experience. If you have a good employment history, some places put a lot of value in that real world experience.

The problem is, getting that experience is harder without a degree. Also, once you enter the workforce, it's VERY hard to go back and get your degree. So, if you are in a position to go to college or university, do it!

So, do you need a degree to get a job in IT? No, you don't. But if you do have a degree, you will make much more money over the course of your life. Do it if you can.

One last note, there is a forum here on Tek-Tips under "The Corporate Water Cooler" called "My own development as a professional". This might be a good forum for you to ask more questions on this topic.


 
If you really want to get a good feel for how different things can be done, and a better feel for how YOU want to do things, then:

Do your work on Windows, Linux and OpenBSD.

These three operating systems have very different priorities and philosophies.

Windows is all about eye candy and ignoring security.

Linux is free but lacking in freedom due to its licenses.
It has better security than Windows, but that is not priority number one.

OpenBSD has a totally free license. You can even sell it.
Security and ultra clean code are the most important quality.


Try working with all three. You will soon discover what kind of programming personality you have and will make much happier career choices.
 
I agree and disagree with the previous post.

I agree that you should try as many different systems as you can get your hands on. You will find some that you just naturally feel more at home on, and are more productive on. Plus, the more experience you have on different systems, the more you will understand all of them. If you understand the reason for the difference, and the design choices that were made, you will have a much deeper understanding of the whole picture and can make better design choices of your own (that may be kind of vague, but you'll understand it more as you learn more).

I disagree with him pushing you towards OpenBSD. Especially for career reasons. He's obviously pushing you towards his bias and I'm suspecting it may be a troll (see link below).

OpenBSD is a great OS. I use it at home. If you want to learn marketable skills though, Linux and Windows are it. In fact if you want marketable skills, download and install Solaris/Intel for free, and install it on an old PC. Learn as much as you can about it. Solaris is more about security and clean code than OpenBSD, and may get you in the door of a big IT shop running huge systems and paying big bucks. That can turn into a very high paying career that will make you very happy. The are way more jobs out there for Windows, Linux, and Solaris skills. Look for market share if you're interest is making your career a lot easier.


 
WOW!
What a shocking response.

A troll because I use a secure operating system.
A troll because I recommend trying multiple OS's

I have used OpenBSD to learn C skills, mod_perl, and server management. Not to mention developing my own in house product, vendor and customer PostgreSQL database and application to use and automatically update it. That includes a variety of web applications for different access privilege levels. It also include special LWP applications that automatically update the values.

As the owner of a remodeling business, I have found OpenBSD to be a useful addition to my business and career.

To the original poster, I once again recommend finding a happy career versus a miserable, yet well paid career.
I am not rich, but I am not miserable.
Use your own mind and heart to find your own proper path.
 
Your response was entirely expected. [bigsmile]

I just don't understand how one version of *nix will make you happy and one will make you miserable. I find them all to be pretty much variations of the same thing. And if you focus on one that more businesses use, and will pay more to have you work on, that really sweetens it. I make my money working with Windows, Linux, and Solaris, and I can honestly say I'm not miserable.

You apparently didn't read my post very well. I agreed that the OP should try a lot of different OSes (even the ones that you think will make him miserable). I never said that was a troll. What seemed like a troll was bashing operating systems that do have merit, while equating the use of OpenBSD with hapiness. That seems pretty absurd to me.

 
:)
You are too sensitive!

All things have their good and bad sides.
Cod liver oil is very healthy to eat.
Tastes disgusting to me.
My Dad drank it straight up as a child. He like it. I don't.

I flirted very briefly with Linuces. Didn't like them much.
I have Win2k and OpenBSD. All my needs are met.
I use OpenBSD to get things done.
I only use windows for entertainment occasionally.

Anyway, GPL doesn't work as a license.
Private companies can take anything GPLed and modify it to their hearts content, as long as they don't release it publicly. I bet a lot of excellent code is hidden away out of reach.
I like being free to release or sell my modifications without any restrictions other than passing along copyright notices.

I bet you use SSH all the time!
 
My main problem right now is getting my video card to work. I originally got an IBM t40, with a Radeon 7500M. I swore I would never mess with ATI again. Circumstances tricked me into getting a Gateway NV52, and it has a stupid Radeon 3200 in it. I tried Ubuntu 9.10, and everything seems to work, but the video driver is crap. Then I upgraded to 10.07 (or whatever), and the wireless keeps disconnecting. The video is improving, but everything else is crap. I've heard that FreeBSD is even worse about driver support. I'm downloading OpenSuse to give it a try. DVD images take a loooong time, dude!

BTW, I believe that happiness is not pleasure, happiness is victory! Pain is weakness leaving the body, so anytime, just throw something at me I can learn! :)
 
AMiSM,

Regarding your problems with wireless, have you checked out the Ubuntu forums for this issue? I ask because I saw a lot of posts about problem with wireless once the upgrade was made to Lucid. There were enough of them to keep me from doing the distro upgrade.

 
Some of those are pretty deep texts to start with. I wouldn't really recommend you start looking into kernel programming until you've got a very good grasp of C. But, you will learn from everything if you give it an effort. You may need to go back and reread some things to understand it, but it's all good. Those are all good books. I have most of them on my shelf, many with Post-Its(tm) still sticking out from between pages.

The important thing is to jump in and get your feet wet. You don't really learn to be a Guru by reading. You learn it by doing. Get an old PC, get a copy of any free OS, and start installing. Then start configuring. Add users. Add software. Start learning C. But just do it!

 
As a previous instructor, I used K&R's book for a number of years. I have yet to find an upper level language that is as fast as straight C, except assembler. Want to be a good programmer, learn the hardware via an assembler or view the assembler listing of your C compiler (which may be confusing). At that point you can code on any machine with a very fast learning curve. I first started with B (on Multics), after assembler, but C improved on many of B's problems. The bottom line is they all do the same thing, get to the guts, then moving from machine to machine or OS to OS isn't as tough. Then when you think you know something, code some micro-code processors or single bit processors. IMHO even the best know only the tip of the iceberg! I've only been doing this 30+ years.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top