How can I be a great computer scientist and what courses should I take to move from...

Quora Feeds

Active Member
Joe Pepersack

Reality check: MIT is one of the most competitive schools on the planet. They only accept the best of the best and it takes 4+ years for a student to graduate (if they don't wash out). You seriously expect to achieve the same level of competency on your own in 1 year? It might be theoretically possible, but if you're that smart you should be able to get a full ride scholarship to MIT anyway.

Even if you go to MIT, You can't become a good programmer in 1 year. MIT's entire Comp Sci curriculum is available online, for free. Complete as much of it as you can in a year and see where you stand at the end of that time. If are realistic and apply yourself you might be able to gain enough competency to land an entry-level programming job which is basically an apprenticeship. Then, if you apply yourself and pick your co-workers brains, and put a lot of effort into honing your craft, you might be able to call yourself a good programmer in 5 years.

As someone who interviews and hires programmers of all skill levels, I am looking for two primary abilities in a job interview:
  1. The ability to apply knowledge of algorithms, data structures, and most importantly standard libraries to solve real problems. I don't care if you know how to write a hash table or a linked list or a b-tree from scratch... those are solved problems. What I expect that if I give you a problem that you can pick a reasonable set of tools and a take a reasonable approach to solve it. If I give you a problem that is best solved with a hash table, and your solution involves implementing a hash table from scratch, you fail. I'm not testing you on your ability to write a hash table. I'm testing you on your ability to recognize that you need to use an existing hash table implementation.
  2. The ability to think analytically, break down a problem, and to explain your approach to solving that problem.
I am constantly amazed at how few comp sci grads can complete a basic programming task like the Fizz Buzz Test in an interview setting.

My interview task is a little more challenging than FizzBuzz, but not by much... it can be solved in 6 lines of code in a dynamic language like Python, Perl, or Ruby; you can do it in Java or C++ in about 20-30 lines. I've gotten responses back with half-correct solutions that took well over 100+ lines of code.

See Questions On Quora

Continue reading...
 

Quora Feeds

Active Member
Barry Rountree


You make programming your hobby.

1. Find the big data/data mining blogs and mailing lists and start following them. That will give you an understanding of what the community considers to be unsolved problems.

2. Find an open-source big data/data mining tool and start mastering it. Then find another.

3. With your knowledge of problems and tools, find an open source dataset and start doing science to it.


main-qimg-6c98f17b21b8849a9a78deb622fa0a70



Now when you go to interview, you're no longer yet another faceless applicant from a mediocre school. Instead, you're the (gender-nonspecific) dude who downloaded Wikipedia and came up with a new sockpuppet-detection algorithm, or the dude who went back over NASAs sky surveys and found half-a-dozen previously unknown asteroids. Or you cloned 10k GitHub projects and did a survey of coding errors.

tl;dr: If you want a job doing data mining, you should be doing data mining now. For fun. Because it's really cool. That way when you show up at the interview, you can say "I do this stuff for fun, and let me show you some of my recent results." That makes you a much easier hiring decision than someone who spent three weeks on a data mining class project.



See Questions On Quora

Continue reading...
 

Quora Feeds

Active Member
Kate Liotta

There are a few topics that every programmer should master. Other choices of topics would depend on what specifically you want to focus on. Computer science is, after all, an incredibly broad subject.

Core concepts: algorithms, data structures, basic complexity theory, databases, object-oriented design, parallel programming, and if you really want to be a kick-ass programmer, functional programming (Haskell is always a good choice).

You absolutely need to become comfortable with version control if you haven't already. It's useful even if you're working on a project by yourself. If possible, practice by doing your assignments and personal projects with some sort of version control set up. Git is fantastic. Perforce is not bad.

If you want a theoretical focus: advanced algorithms, advanced complexity theory, theory of programming languages / semantics, information theory, automata theory. Of course, there are subfocuses within theoretical CS that you can discover yourself, but these are the basics.

If you want more of a systems focus: computer architecture, operating systems, distributed systems, database implementation, performance analysis. I'd also become as experienced as possible with implementing and debugging parallel programs - those bugs are hard to anticipate and find.

If you're interested in web development: HTML, Javascript, Ruby, SQL, Node.JS, and UI design.

There are many other possibilities for areas to focus on - lots of interesting research going on in machine learning, computer vision, cryptography, quantum computation, and much more - but hopefully this gives you some ideas to go off of.

See Questions On Quora

Continue reading...
 

Quora Feeds

Active Member
Brian Lambert

I would plan on a year to learn and a lifetime to master. :)

If you were my son, and I was teaching you, I'd start with:

C programming language
Algorithms and data structures
Operating Systems

We'd go to Microcenter, build a PC, install Linux on it, and start in on learning the core things.

After that we'd move on to technologies and languages used to build the web. HTML, JavaScript, Node.JS, SQL, and so on.

Then we'd tackle things like OO, Ruby, RoR, Python, and so on.

Just my two cents.

Good luck!!

See Questions On Quora

Continue reading...
 
Similar threads
Thread starter Title Forum Replies Date
S Looking for a study buddy working on computer science Q&A 2
A Study Buddy Computer scienc Study Buddy 0

Similar threads

Top