background preloader

What every computer science major should know

What every computer science major should know
Portfolio versus resume Having emerged from engineering and mathematics, computer science programs take a resume-based approach to hiring off their graduates. A resume says nothing of a programmer's ability. Every computer science major should build a portfolio. A portfolio could be as simple as a personal blog, with a post for each project or accomplishment. A better portfolio would include per-project pages, and publicly browsable code (hosted perhaps on github or Google code). Contributions to open source should be linked and documented. A code portfolio allows employers to directly judge ability. GPAs and resumes do not. Professors should design course projects to impress on portfolios, and students, at the conclusion of each course, should take time to update them. Examples Technical communication Lone wolves in computer science are an endangered species. Modern computer scientists must practice persuasively and clearly communicating their ideas to non-programmers. Specific recommendations Java

Humor - How to Shoot Yourself In the Foot Using Any Programming Language The proliferation of modern programming languages (all of which seem to have stolen countless features from one another) sometimes makes it difficult to remember what language you're currently using. This guide is offered as a public service to help programmers who find themselves in such dilemmas. 370 JCL You send your foot down to MIS with a 4000-page document explaining how you want it to be shot. Three years later, your foot comes back deep-fried. Ada After correctly packaging your foot, you attempt to concurrently load the gun, pull the trigger, scream, and shoot yourself in the foot. When you try, however, you discover that your foot is of the wrong type. APL You shoot yourself in the foot, then spend all day figuring out how to do it in fewer characters. ASP.NET Find a gun, it falls apart. Assembly You try to shoot yourself in the foot only to discover you must first reinvent the gun, the bullet, and your foot. BASIC Shoot yourself in the foot with a water pistol.

Online Computer Science Courses Computer science is the study of computational systems, their practical applications, and the examination of how humans interact with and improve upon new technology. College computer science programs and their open online courses typically focus on these primary concentrations: the theory behind programming language, the pragmatic applications and development of new technology, instructional design, and the creation of more user-friendly tech interfaces. Specifically, many courses deal with algorithm creation and coding techniques, while others will apply this knowledge to real-world tasks such as software construction. Why Take Free Online Computer Science Courses? Online computer science courses are offered at both undergraduate and graduate levels, and since computers and mobile technology are so ubiquitous, it is possible to earn a viable education through online courses and degree programs. Find Free Online Computer Science Courses

Books and papers every graduate student should read Jump to For grad students in any field Resources for writing Writing is the default activity in graduate school. A discovery isn't a discovery unless you can communicate that discovery. A lot of academic writing is horrible, and it tends to be horrible in multiple ways: presentation, ordering, clarity, style, and sometimes even grammar and punctuation. Better writing makes peer reviewers inclined to invest time in it. On writing style, Style: Lessons in Clarity and Grace simply nails it. The Chicago Manual of Style is an indispensable reference: I didn't find A Manual for Writers of Research Papers, Theses and Dissertations until after my defense, but it is relevant to any kind of academic or technical writing. Like the Chicago book, it's a superb reference tome. Resources for presenting (yourself) Graduate students can't avoid giving presentations. Once again, most academics give awful presentations. will make every presentation you give better at the cost of just one afternoon's reading. Practice

Signs that you're a bad programmer - Software Engineering Tips Why was this written? Most of these faults were discovered the hard way by the author himself, either because he committed them himself or saw them in the work of others. This paper is not meant for grading programmers, it was intended to be read by programmers who trust their ability to judge when something is a sign of bad practice, and when it's a consequence of special circumstances. This paper was written to force its author to think, and published because he thinks you lot would probably get a kick out of it, too. 1. Reasoning about code means being able to follow the execution path ("running the program in your head") while knowing what the goal of the code is. Symptoms Remedies To get over this deficiency a programmer can practice by using the IDE's own debugger as an aide, if it has the ability to step through the code one line at a time. 2. Object Oriented Programming is an example of a language model, as is Functional or Declarative programming. 3. 4. 5. 6. 1. 2. 3. 4. 5. Symptoms

What should I know (computer science-wise) before going to college to major in Computer Science? quora The Evolution of a Programmer High School/Jr.High First year in College program Hello(input, output) begin writeln('Hello World') end. Senior year in College (defun hello (print (cons 'Hello (list 'World)))) New professional #include <stdio.h> void main(void) { char *message[] = {"Hello ", "World"}; int i; for(i = 0; i < 2; ++i) printf("%s", message[i]); printf("\n"); } Seasoned professional Master Programmer Apprentice Hacker Experienced Hacker Seasoned Hacker % cc -o a.out ~/src/misc/hw/hw.c % a.out Guru Hacker New Manager Middle Manager mail -s "Hello, world." bob@b12 Bob, could you please write me a program that prints "Hello, world."? Senior Manager % zmail jim I need a "Hello, world." program by this afternoon. Chief Executive % letter letter: Command not found. % mail To: ^X ^F ^C % help mail help: Command not found. % damn! Anonymous If you enjoyed this, you might like:

Cheat Sheet : All Cheat Sheets in one page A Survival Guide to a PhD This guide is patterned after my “Doing well in your courses”, a post I wrote a long time ago on some of the tips/tricks I’ve developed during my undergrad. I’ve received nice comments about that guide, so in the same spirit, now that my PhD has come to an end I wanted to compile a similar retrospective document in hopes that it might be helpful to some. Unlike the undergraduate guide, this one was much more difficult to write because there is significantly more variation in how one can traverse the PhD experience. Therefore, many things are likely contentious and a good fraction will be specific to what I’m familiar with (Computer Science / Machine Learning / Computer Vision research). Preliminaries First, should you want to get a PhD? Freedom. Ownership. Exclusivity. Status. Personal freedom. Maximizing future choice. Maximizing variance. Personal growth. Expertise. The disclaimer. Getting into a PhD program: references, references, references. Picking the school. Adviser Resistance.

How to Hunt Elephants MATHEMATICIANS hunt elephants by going to Africa, throwing out everything that is not an elephant, and catching one of whatever is left. EXPERIENCED MATHEMATICIANS will attempt to prove the existence of at least one unique elephant before proceeding to step 1 as a subordinate exercise. PROFESSORS OF MATHEMATICS will prove the existence of at least one unique elephant and then leave the detection and capture of an actual elephant as an exercise for their graduate students. COMPUTER SCIENTISTS hunt elephants by exercising Algorithm A: Go to Africa. Start at the Cape of Good hope. EXPERIENCED COMPUTER PROGRAMMERS modify Algorithm A by placing a known elephant in Cairo to ensure that the algorithm will terminate. ASSEMBLY LANGUAGE PROGRAMMERS prefer to execute Algorithm A on their hands and knees. DATABASE ADMINISTRATORS do not need to go out and capture elephants when they can retrieve them simply with an ad hoc query: STATISTICIANS hunt the first animal they see N times and call it an elephant.

50 Essential Online Tools For Every Computer Science Student - Computer Science Zone Computer science students need to acquire skills in multiple areas — arguably more so than many other study disciplines. So not surprisingly, they need a large toolbox, for any of several activities encountered in the typical college program. To that end, here is a reference list of 50 essential tools (software and resources) for computer science students. Notes: We’ve left out the typical Web browsers, email clients, most IM/ chat clients, search engines, video sharing sites, etc., and given a sample of tool categories that have numerous options.Some tools listed are free, others follow a freemium model (free with paid upgrade options). Communication and Collaboration Google Hangouts: Free group conversations and live voice and video, from a browser or mobile app.Strike: Create Web-based task lists and share with classmates, colleagues and other collaborators. Data Parsing, Data Conversion, File Retrieval, Format Checking JSONLint: Validate JSON content and convert to prettyprint mode.Mr.

Related: