Hey there everyone,
I have been a computer programming instructor for several years now. I like helping my students, but every year, they are the same age, and have generally the same skill set. So yes, I'm getting bored: it just feels like doing the same thing year in year out. THEY learn a lot, while I don't.

So, my thought has been to become a programmer, full time. I am wondering though: in order to do this, do you have to get a four year CS degree? I'm not saying that I won't if it is an absolute must. It just seems logical to ask people who already are programmers what their take on it might be.

cheers,
Pablo

CS is a different feild then programming. Though CSer's can compete for the same jobs. Sometimes schools advertize their "computer programming" programs as "computer science" for the presteige of the name without understanding that they two are different feilds.

If you want to study computer science, then you'll want to take computer science and probably some mainstream math. If you want to do programming but want to take CS, then you need to adapt what you learn from CS - it might just be better to take a "computer programming" program instead.

So, you might want to look into the difference of the various feilds before you commit to one.

Also it's not that one is a "java programmer". I mean, I'm sure there are people who never learned anything other then java. But it's more like "you're a programmer who knows java". There is a huge set of skills required to program that exist independantly of programming languages. In fact, you can pick up a language on the spot and already be an excellent programmer of that language simply by transferring the skills over. So I would be sceptical of programs that adversite "buzzword languages", because most of the skills you'll learn have nothing to do with programming languages.

A good comparison is like writting a story. If you know English, great. But just because you know English, doesn't mean you can write a good story. Also, the skills used to write the story don't have much to do with the language you write it in. It's the same with programming. Just because you know particular languages (like java), it doesn't mean you can write great code. But someone who can write great code can write it in any language. This is important to note because people often can't sperate language from skill and think that becomming proficent at a language will make them more skilled.

With that in mind, if you want to learn more about the mathematical side and the computational side, take Computer Science. If you want to be a good programmer, take something advertized as "software engineering", "software development", "computer programming" or something like that. I would avoid courses that say "degree in Java programming" or things that focus too much on the language.

If you're you know what your doing while programming, and you have experience and you can show it (a list of past empoyers, a list of projects, something like that...), you might be able to get a job without university or collage.

Edited 2 Years Ago by Hiroshe

Comments
great advice

Just to illustrate Hiroshe's point, I received an email from a recruiter looking to hire a developer for an application in the medical field in New York. I also teach programming and wasn't looking to change jobs, but I was curious, so I responded. (I was also wondering why they contacted me since I don't think I enough experience for the job). The recruiter asked me about the languages and technologies I've used and then informed me that they need someone to work with Ruby on Rails. Even though I have never used Ruby, they were willing to bring me in for an interview if I was open to learning it. Not only do I not have a degree in computer science, I don't even have the skill set they are looking for and they still wanted to interview me.

Since I teach computer science and math to high school students, I can relate to the boredom, especially if students are not very interested or motivated. If you can find some projects to do with your best students that will help you develop your own skills and you won't be bored. It may also better prepare you for a transition into the industry.

If I have a strong class, I may be able to have students work together to build something interesting (using techniques or technologies new to me) and if I don't have a strong class, then I still may have one or two talented and motivated students willing to learn new things with me.

Last June, my students worked on creating a tutoring system. It was to function like this forum does, except that only "tutors" can post answers and tutors get notified whenever a question in their subject (or subjects) is posted. We also planned on building a chat feature and a smart phone app.

The only thing my students knew from my class was standard Java. I chose Vaadin as the framework for building the web application because it involved the fewest new things for them to learn. Students worked in groups to learn and then apply:

  • Vaadin Framework for the UI
  • MySQL to store the registered tutors, questions and answers
  • HTML / CSS to build the main web page
  • Openshift command line tools to deploy it to a cloud hosting provider

The class ended and we didn't finish the project, but we learned a lot from the process. I plan to finish it with one or two students this Fall.

As someone who has interviewed for financial organizations and has been involved with setting up an entire team, I really don't care about the degree as long as the candidate has:

  1. The right skillset
  2. Humility
  3. Desire to learn a bit more

As an example, is there any reason to not consider a junior candidate who has a good grasp of the relevant data structures (lists, stack, queues, maps) and algorithm techniques just because he/she doesn't have a CS degree? I personally don't think so.

Though I must say that the unfortunate reality is such that some big companies put a threshold on "who" can apply for their positions due to some arbitrary standards set by the hiring/management committee. Thankfully, this is not a norm and most of the organizations are content with candidates having the relevant experience and skills.

Edited 2 Years Ago by ~s.o.s~

Comments
true

Now I'm not sure if teaching = good programmer although, if you're teaching you should have a really good grasp of things.

Experience is what counts, building real java apps for real jobs. Do you have a java portfolio?

Hello there Iamthwee,

I don't have a Java portfolio; that is part of the problem. I've spent years helping my students, and I haven't really been helping myself. I am looking to build one though, and I am wondering: what do you think are soem "must haves" for a portfolio of this type? One or two suggestions would be helpful

Hello there llaspina,

Thanks for a fellow teacher perspective. My experience has been slightly different; sure, I've had some students who were in my class because a guidance counselor saw that it fit their schedule, but I've had many students who were amazing and fun to be around,and some that were truly brilliant. The reason I'm chafing is that I never get to do anything really new. It's been TOO comfortable, TOO easy and waaaaaaaaay too predictable. It's about consistently helping the kids, to say nothing of not getting stomped on by the admins, many of whom still see what we do as ana elective, and not even a particularly important elective :-)

Hello Hiroshe (saved yours for last),
I like working with kids. I like programming computers. I want to learn a LOT more about computer programming, and try some languages that have never been part of the curriculum, like Python, Ruby, C#, PHP, etc etc. It seems to me the only way I am going to grow as a programmer is to do it fulltime. This will entailbreaking away from something is fun and comfortable for the most part, and re-inventing myself to a certain extent.

I have no interest at all in getting another degree, especially since it seems from answers received here and in other venues that its not a requirement. I'm just looking to break into the field, any way that I can

If your goal is to learn more then I think going into the computer science field will give you a deeper experience. Specifically it would give you more "computationally interesting" problems to work with (AI, signals processing, missle guidance systems, etc...). Though getting into CS without a degree in CS is more difficult unfortunately.

Most industrial programming is not as "computationally interesting" (resource management, finance, buisiness portals, websites, chat programs, etc...). Though industrial programming will introduce you to other technologies (revision control, documentation systems, test harnesses, etc...), and give you more experience with other programming languages and teach you about the engineering proccess for software. This will come more easily without a degree.

This article has been dead for over six months. Start a new discussion instead.