12 Replies - 2023 Views - Last Post: 18 August 2012 - 07:43 PM

#1 carnivroar  Icon User is offline

  • D.I.C Regular

Reputation: 28
  • View blog
  • Posts: 382
  • Joined: 18-September 11

Generalize or specialize?

Posted 03 August 2012 - 11:39 PM

I was hoping this thread would have gotten more replies but since it didn't, I decided to start this one.

My question is, while an undergraduate, is it better to specialize on a specific area of your major or to be a generalist and learn about all sorts of technologies?

Recently on internship interviews I was asked what my goals were and I said something along the lines of "I'd like to expand my knowledge and gain skills in various areas of CS." Was that a bad answer?

This post has been edited by carnivroar: 03 August 2012 - 11:40 PM


Is This A Good Question/Topic? 0
  • +

Replies To: Generalize or specialize?

#2 modi123_1  Icon User is online

  • Suitor #2
  • member icon



Reputation: 9073
  • View blog
  • Posts: 34,115
  • Joined: 12-June 08

Re: Generalize or specialize?

Posted 04 August 2012 - 12:38 AM

Yes that was a bad answer... my philosophy - pick something and be passionate about it.
Was This Post Helpful? 0
  • +
  • -

#3 Lemur  Icon User is offline

  • Pragmatism over Dogma
  • member icon


Reputation: 1359
  • View blog
  • Posts: 3,425
  • Joined: 28-November 09

Re: Generalize or specialize?

Posted 04 August 2012 - 12:44 AM

When you're still in College you want as wide of a base as possible. Study everything you can possibly get your hands on, you don't need to be good at it, just understand it.

What I would suggest, and depending on the general area you want to be in, is to learn the following:

SysAdmin - OpEngineer - Architect

  • Proficiency in Unix (not just Linux)- sh, vi, grep, awk, sed
  • A deep disdain for Windows
  • Scripting - Ruby Python Perl
  • TCP/IP fundamentals
  • VLAN and Switching knowledge
  • Remote Access - SSH, Telnet, VPN
  • User Mgmt - LDAP, Kerberos, AD, DNS, BIND, NIS
  • Monitoring - Nagios, Zabbix, God, Tripwire, Snort
  • File/Web Server - NFS, Samba, Apache, NginX, lighttpd
  • Database - MySQL, NoSQL, Postgre
  • Programming - C, LISP, HTML/CSS/Javascript(not technically)

(Why LISP? Realize that SysAdmin types need to be able to program functionally, most of what we do isn't architecture and objects, it's functions and data manipulation. You already do it with output and input redirection...)

Software Engineer - Developer

  • OO Language - C, Java
  • Functional Language - LISP, Haskell, Clojure, Scheme
  • Algorithms - O notation and np problems
  • Database - MySQL, MSSql, Postgre, NoSQL
  • Version Control - Git, Mercurial, SVN


Realize that I'm an Op type, so I really don't know an incredible amount about a good base in Development.

Your goal is to be familiar enough with everything that if it's mentioned you can make casual conversation to stall until you can get back to google to research some more.

The wider the base of a pyramid, the more stable it is and the higher it can rise. That's not to say a monolith can't rise high, but that it's far less stable and more prone to crash.

Specialize AFTER you get into the field. You don't know what you like to do until you have to do it every day. You'll realize quickly what you love and what you dread.

That being said, I've begun specializing in automation using Ruby and OpenBSD.

This post has been edited by Lemur: 04 August 2012 - 12:46 AM

Was This Post Helpful? 2
  • +
  • -

#4 carnivroar  Icon User is offline

  • D.I.C Regular

Reputation: 28
  • View blog
  • Posts: 382
  • Joined: 18-September 11

Re: Generalize or specialize?

Posted 04 August 2012 - 07:18 PM

That's a great list, thanks. But how come no math?

I am more of a developer person - that much I know. I love OOP, algorithms, and low level stuff like assembly language. But most entry level positions around my area require stuff from the first category.

Why do databases fall under both categories? And how come databases aren't taught in school? I might be wrong but I've never seen a course for it (only for CIS, not CS). Might be just my school, so clarify that for me...

Thanks!

View Postmodi123_1, on 04 August 2012 - 12:38 AM, said:

Yes that was a bad answer... my philosophy - pick something and be passionate about it.


That's a bad answer. :detective: Could you say a bit more?

This post has been edited by carnivroar: 04 August 2012 - 07:20 PM

Was This Post Helpful? 0
  • +
  • -

#5 jon.kiparsky  Icon User is online

  • Pancakes!
  • member icon


Reputation: 7641
  • View blog
  • Posts: 12,883
  • Joined: 19-March 11

Re: Generalize or specialize?

Posted 04 August 2012 - 08:03 PM

A job interview is a chance for you to find out about the company you're interviewing with, and for them to find out about you. That being the case, a good answer is one that communicates the best things about who you are, and ideally the things about you that are most interesting to the person you're talking to. The important thing about that is that this should communicate things that are true. If you want to learn a lot about a lot of things, that's what's true right now. Let them know about the things you want to know and why.

"I want to know a lot of stuff" doesn't tell them much. "I have a lot of things I'd be interested in learning about, because I'm new at this and there's a lot to learn. Some of those things are X, Y, and Z, for reasons p, q, and r."

Mostly, people don't really want to know the answer to that question, they want to find out something about who you are and how you think about things. You're really best off telling them honestly what you think, and having something good to say about that. If you don't think that your honest answers are what people want to hear, then that should tell you you're talking to the wrong people about the wrong things.

So "was that a bad answer?" Only if it wasn't true, or if you didn't have anything good to say about it.

Should you honestly and sincerely want to generalize or specialize? If you're asking that question, it probably indicates that you haven't found something that you necessarily want to specialize in. As Lemur sagely points out, at this stage in your career, you've still got a lot of general knowledge to gather. In the process of gathering that knowledge you might find what you want to focus in on. If you don't, you'll certainly have more skills to support whatever you end up focusing on - if you do end up specializing at all.
Was This Post Helpful? 0
  • +
  • -

#6 Lemur  Icon User is offline

  • Pragmatism over Dogma
  • member icon


Reputation: 1359
  • View blog
  • Posts: 3,425
  • Joined: 28-November 09

Re: Generalize or specialize?

Posted 04 August 2012 - 08:57 PM

Databases are used by near everyone. As a SysAdmin, I use them at $WORK to keep track of customers, wireless antennas, and a load of other things. I have to know how to query them to coax pertinent information from the sneaky devils.
Was This Post Helpful? 1
  • +
  • -

#7 carnivroar  Icon User is offline

  • D.I.C Regular

Reputation: 28
  • View blog
  • Posts: 382
  • Joined: 18-September 11

Re: Generalize or specialize?

Posted 04 August 2012 - 09:16 PM

What type of jobs are there for someone who's interested in OOP, assembly language, algorithms, math, computer sciency things?

I'd like to take a compiler construction course next semester. The professor whom I admire very much said that "employers like to see it" - well what do you think of that?

That was the route I was going until I started looking for internships.

I just bought the book The Google Resume, hopefully that'll give me more insight into the field.

Also being a physics major leaves me limited time for CS, so that's why I'm asking a lot of questions.

This post has been edited by carnivroar: 04 August 2012 - 09:17 PM

Was This Post Helpful? 0
  • +
  • -

#8 Lemur  Icon User is offline

  • Pragmatism over Dogma
  • member icon


Reputation: 1359
  • View blog
  • Posts: 3,425
  • Joined: 28-November 09

Re: Generalize or specialize?

Posted 04 August 2012 - 09:45 PM

Questions are good, they show that you care and you want to know more.

If I were ever in a position to hire, I would take a decent person with ambition over a genius with none any day. Passion is often an overlooked field and it costs people dearly. People who live by the clock and by the pay check will get no where in life. People with drive will get everywhere. As soon as you want to succeed as bad as you want to breathe, you'll start getting somewhere fast. (*that's not to say crap doesn't happen, murphy, karma, what have you else.)

Take a look at this article on what makes a great hacker, I believe it holds true for almost any comp sci type: http://www.paulgraham.com/gh.html

Yes, math is important. If you would have asked me that 3-4 years ago I would have scoffed and said I'd never taken past College Algebra rather proudly. Today I would personally backhand myself for such ignorance. Math is beauty, almost poetic in nature. Math and programming are an art style like none other. Wordpress has it right: Code is poetry.

That brings me to another thing. Learn art, music, writing. Develop an appreciation for fine music and art, you would be surprised. Inspiration takes on many masks, and believe me when I say that you can never go wrong when you search for true beauty in the world. Take up an instrument, do a few doodles, give it a shot.

Make sure you've done something interesting. Saying you know all this stuff is nice, but what can you do with it? What have you done that would convince someone that you're a hotshot ready to go? Get a GitHub and start pegging away. If you can't think of ideas as to what to write, find them. I bet you anything the teachers around would love some programs, or the athletics department could use some database and analysis software.

Good luck and God speed mate.
Was This Post Helpful? 1
  • +
  • -

#9 jon.kiparsky  Icon User is online

  • Pancakes!
  • member icon


Reputation: 7641
  • View blog
  • Posts: 12,883
  • Joined: 19-March 11

Re: Generalize or specialize?

Posted 04 August 2012 - 09:50 PM

Quote

I'd like to take a compiler construction course next semester.


I found compilers to be very difficult, very enjoyable, and very enlightening. A disproportionate amoung of what I understand about programming comes from this course, either from the course material or from the sheer buggered difficulty of the work involved. I absolutely recommend you take this course, assuming it's taught by someone good (sounds like you're in good hands in this case)


Quote

The professor whom I admire very much said that "employers like to see it" - well what do you think of that?


I think looking for things that "employers like to see" is a losing battle, because it assumes that employers as a class have a small and uniform set of desiderata. It's easy to make the case, however, that performing well in a hard class is a good sign of understanding about code and also of proficiency with at least one language, so that's a good thing in an interview.

Quote

What type of jobs are there for someone who's interested in OOP, assembly language, algorithms, math, computer sciency things?


There are a shit-ton of jobs for someone who's interested and capable, period. Don't make this more difficult than it is. Do stuff that matters to you, and find the people who agree with you. Look: when you go into an interview, your bottom line is: "trust me to make good decisions" - you might as well start eating your own dog food now, and trust your own self to make good decisions.

This post has been edited by jon.kiparsky: 04 August 2012 - 09:51 PM

Was This Post Helpful? 1
  • +
  • -

#10 carnivroar  Icon User is offline

  • D.I.C Regular

Reputation: 28
  • View blog
  • Posts: 382
  • Joined: 18-September 11

Re: Generalize or specialize?

Posted 06 August 2012 - 06:33 PM

Ah, I forgot I can't take the compilers course yet. I have to take programming languages first.

Anyways, I've been reading around and it seems that it's best to generalize while an undergraduate and then specialize on the job or on graduate school. The advantage of a CS degree in the first place is that it prepares you to be able to handle anything. Or so it seems.

Also, my mistake was thinking that CS == programming. I'm good at CS, but I need to improve my programming skills. Also, I've read that employers tend to value people with a strong CS foundation even if they're not experienced programmers. That seems like what's to be expected form a recent graduate. It might be wrong.

This post has been edited by carnivroar: 06 August 2012 - 06:35 PM

Was This Post Helpful? 0
  • +
  • -

#11 animaguy  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 3
  • Joined: 18-August 12

Re: Generalize or specialize?

Posted 18 August 2012 - 06:19 PM

Generally speaking, if you are intelligent enough to ask that question, I say specialize when you are young and generalize as you get older.

Everyone in your professional life appreciates someone who can demonstrate focus. Once you establish yourself as someone who can master a skill at a high level than then you have more flexibility to explore the bigger picture.

As you get older, it it becomes increasingly difficult to ignore the big picture in the real world.
Was This Post Helpful? 0
  • +
  • -

#12 Lemur  Icon User is offline

  • Pragmatism over Dogma
  • member icon


Reputation: 1359
  • View blog
  • Posts: 3,425
  • Joined: 28-November 09

Re: Generalize or specialize?

Posted 18 August 2012 - 06:32 PM

View Postanimaguy, on 18 August 2012 - 08:19 PM, said:

Generally speaking, if you are intelligent enough to ask that question, I say specialize when you are young and generalize as you get older.


Bad idea. Tell me how many College students are legitimately set to a single major when they start, or how many people actually know what they want to do with their lives. It's such a low percentage that you would be shooting yourself in the foot to pretend that you'd even know where in the world to start specializing while you're a greenhorn.

My point is that you won't even really know what specializing is until you have a broad skillset from which to choose.
Was This Post Helpful? 0
  • +
  • -

#13 fatalpriapism  Icon User is offline

  • New D.I.C Head

Reputation: -5
  • View blog
  • Posts: 39
  • Joined: 17-August 12

Re: Generalize or specialize?

Posted 18 August 2012 - 07:43 PM

Since this thread is discussing the education aspect of things, a small recommendation. I took an intro compsci course in college (I was a bio major). That said, most of my friends were compsci guys and gals, and the one thing they really appreciated was the ethics & technology course. It really got them thinking about decision making, societal impacts, subconscious influence, stuff like that.

If you are the innovative type, mixing in a couple of philosophy classes can give you a fresh and different perspective from the mainstream.

So in a sense, I'm directing this thread subject to your entire education, not just CS. Get a broad and general education in different subjects. You'd be surprised what you'll find interesting and what different ideas might pop into your head :)
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1