I don't think it's that valuable to improve IDE-less software development skills. Just because some Unix nerds find it cool to play with text files, avoid modern software development tools or program in date languages like C it shouldn't be desirable for a computer science major. Computer science should focus on long-live principles, the Unix philosophy may have a lot of good worth to keep principles, but kinda nothi…
What every computer science major should know (2011)
81–90 of 187 posts
Re: What every computer science major should know (2011)
#82/s
Re: What every computer science major should know (2011)
#83> must practice persuasively and clearly communicating their ideas to non-programmers If you’re a CS major, panicking over this sort of “technical skills aren’t enough, you have to be a persuasive public speaker and effectively do management’s job for them”, people have been saying this since at least I started coding 30 years ago, and I don’t see any evidence that it’s actually true any more than it was back then -…
> focus on technical ability, that’s a hell of a lot harder to come by than “powerpoint skills”. I'll agree and disagree: Yes, the target audience here SHOULD focus on technical ability. Not because it's "harder", but because that will be the primary decider in getting hired. That said, I'd say my communication skills have been a central part of my success. Not "powerpoint", so much as being able to distill down idea…
Re: What every computer science major should know (2011)
#84Re: What every computer science major should know (2011)
#85I don't think it's that valuable to improve IDE-less software development skills. Just because some Unix nerds find it cool to play with text files, avoid modern software development tools or program in date languages like C it shouldn't be desirable for a computer science major. Computer science should focus on long-live principles, the Unix philosophy may have a lot of good worth to keep principles, but kinda nothi…
Your comment shows a lot of naivety. Text is near universal, C still makes the world go ‘round and modern doesn’t mean graphical.
A great example of this is CSV. It's a wonderfully simple format... so simple that there is considerable variety in things such as "how do you quote a field," "how do you delimit fields" (considering its name is Comma-Separated Values, you'd think everyone would agree it's a comma), and "what characters are legal within fields," let alone the semantic interpretation questions of "is there a header row", "is this column numeric or textual or something else," etc.
Re: What every computer science major should know (2011)
#86One thing that surprises me that Python wasn't mentioned as a language of interest. It's used in a lot of scientific computing, financial spaces and others. Ive been using it in finance for 15 years. 15 years ago, there was little traction, but now the quants I work with only want to use it. The quants aren't really programmers, but numpy, scipy and pandas make them productive without a lot of dev experience.
I'm saying this as a physicist who has not studied CS formally, but worked with a lot of CS'ists.
Re: What every computer science major should know (2011)
#87Is there anyone who ever knew all of this when they graduated? I think maybe the top student through my five years at university might have known all of this. I sure as hell did not check all the boxes when I graduated two years ago. If you're nervous after reading this, just know that the "should" probably means "in an ideal world".
Re: What every computer science major should know (2011)
#881) You should always be learning.
2) You should mostly do interesting work you love.
3) You should foster good friendships with your highly ranked coworkers; at least having dinner once a month.
4) You should regularly look for and fix your weaknesses.
5) You should balance work and play. Exercise. Travel as much as possible.
Re: What every computer science major should know (2011)
#89~90% of CS undergraduates will end working as or with engineers, and in 2019 here are the skills that are indispensable:
1) understand popular protocols used in WWW (http, ssh, ftp, etc)
2) version control (Git). Understand pull-requests and the process of collaboration in a team
3) problem solving - how to breakdown problems, and how to overcome them when you reach a wall (use known algorithms when possible)
4) design patterns (learn as many as you can)
5) frameworks: MVC, angular, dependency injection, etc
6) communication skills
7) how to organize work, how breakdown big tasks into small easier-to-accomplish pieces
8) understand deadlines
9) write tests (unit-test, integration-test, etc)
10) understand that “good enough” sometimes is all you need (still try to fix it later :) )
Re: What every computer science major should know (2011)
#90I come from a CS background and learned a lot from studying CS, it definitely gave me a strong foundation and changed the way I view and understand computing. I learned most of the topics mentioned in this document while in school, and although they are all valid, they are not enough for real world needs. ~90% of CS undergraduates will end working as or with engineers, and in 2019 here are the skills that are indispe…
As an engineering manager I find that a consistent difference between good engineers and great engineers is that great engineers can tell me how long something will take even when they haven't done something just like it before. That doesn't mean they can perfectly forecast how the hours will be spent -- no one could do that -- but they know how to figure things out, know how to build in some buffer, and know how to go heads down and crank when absolutely necessary, and as a result they can consistently hit deadlines.