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.

Algorithmist Video: The Spirit of Tek | Watch Oregon Experience Online | OPB Video A personalized PBS video experience is only a few clicks away. Use one of the services below to sign-in to PBS, and you'll be able to manage videos in your Watchlist, keep track of your favorite shows, watch PBS in high definition, and much more! You've just tried to add this video to your Watchlist so you can watch it later. But first, we need you to sign-in to PBS using one of the services below. You’ll be able to manage videos in your Watchlist, keep track of your favorite shows, watch PBS in high definition, and much more! You've just tried to select this program as one of your favorites. To get you watching PBS in high definition we need you to sign-in to PBS using one of the services below. You'll be able to manage videos in your Watchlist, keep track of your favorite shows, watch PBS in high definition, and much more! We have updated our registration process.

My adventures in CNC robotics My adventures in CNC robotics Introduction I'm a computer geek by day, but I have always dreamt of something more than just writing code: I hoped to make things that interact with the physical world. To make it worse, I couldn't convince myself to take the now-popular route of buying the prefabricated robotics kits and putting them together in one of several predetermined ways. Of course, that pipe dream soon collided with reality: I lived in Poland at that time - a country not known for its vibrant maker community - and did not even have access to a machine shop. I have a fairly neat daytime job and two kids, so I can dedicate just several hours every month to this hobby; with barely ~300 hours total, I still feel very much like a novice. Note: if you're more interested in the practical aspects of CNC manufacturing than in a personal story, check out my guerrilla guide to CNC machining instead. 2006: Baby steps And so I bought it. The gearbox worked. 2007: Say it with resin

Musings of a restless programmer: Hacking the coding interview The technical interview process used to hire software engineers/developers hasn't changed much over the years. A couple of coding problems to solve on a whiteboard for roughly an hour a piece over the course of a day. Intersperse lunch & bathroom breaks for fluid I/O needs. Leave feeling exhausted, perhaps regretting how silly you were to forget the algorithm for merge sort on that 3rd interview. Over the last 7 years I've given and received enough interviews to see a couple of patterns emerge. What I'd like to do is spend the remainder of this post being a hacker who's goal is to get the best offer at a company possible (compensation, position). Know what you're up against These are the typical steps in the interview process from first contact to offer letter: At any point, the process can dead end --- for a variety of reasons. 3 to 6 interviewers. Some companies are moving away form the last point and doing things like pair programming and live code debugging. Generating leads

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

newfinancepage.html Scott Burton Financial Software Projects Graduate Division - Computer Science Tuesday 7:10-9:00 WWH Room WWH 3 This course will be taught by a veteran Wall St. technology manager currently employed at a top tier investment bank. The theme of this course will be “applied case study” and will focus on Fixed Income markets. Pre-requisites: It is assumed that the students can code in C++ or C for the server side. No prior experince in the financial sector is required - just a desire to learn it. Reference Materials: Software Engineering: Soul of a New Machine - Tracy Kidder The Mythical Man - Month - Fred Brooks (this is the only text students will need to purchase) Application Domain: (should be available in library): The Handbook of Global Fixed Income Calculations - Dragomir Krgin The Money Markets - Marcia Stigum Security Analysis - Graham and Dodd Handouts Course Objectives: 1. 2. 3. 4. 5. 6. Grading policy: The final project will be a working app built using the library submitted at mid-term.

Arduino Isn’t Just For Hackers ← Paul M Furley Arduino turned out to be the perfect match for JF Machines Ltd, a manufacturer of industrial digital printing machines. The open source platform offered them supply security, enormous flexibility and simple PC interfacing, all at an incredible price. Back in 2009 I worked in JF Machines Ltd – the family firm – producing the user operator software for their new digital printing machine, the PicoColour (if you’re imaging a desktop printer, try 1.5 tonnes of precision-engineered printing press…) Picocolour digital inkjet printing machine Like many high-tech manufacturers, JF Machines has historically used both in-house electronics and programmable logic controllers (PLCs). As a quick primer, PLCs are proprietary devices which typically employ a high level language – or even graphical user interface – to describe complex system behaviour. The PLC is a great sell: simple machine control, little hardware design required and so on, but the flaws soon become apparent. Enter Arduino. Verdict

Relationship between Voltage Current and Resistance Relationship Between Voltage, Current and Resistance The fundamental relationship between voltage, current and resistance in an electrical circuit is called Ohm’s Law. All materials are made up from atoms, and all atoms consist of protons, neutrons and electrons. When these protons, neutrons and electrons are together within the atom they are happy and stable. Now if we create a closed circuit these loose electrons will start to move and drift back to the protons due to their attraction creating a flow of electrons. Then all basic electrical or electronic circuits consist of three separate but very much related electrical quantities called: Voltage, ( v ), Current, ( i ) and Resistance, ( Ω ). Electrical Voltage Voltage, ( V ) is the potential energy of an electrical supply stored in the form of an electrical charge. The Potential difference between two points is measured in Volts with the circuit symbol V, or lowercase “v“, although Energy, E lowercase “e” is sometimes used. Resistance

Advice for Computer Science College Students by Joel Spolsky Sunday, January 02, 2005 Despite the fact that it was only a year or two ago that I was blubbering about how rich Windows GUI clients were the wave of the future, college students nonetheless do occasionally email me asking for career advice, and since it's recruiting season, I thought I'd write up my standard advice which they can read, laugh at, and ignore. Most college students, fortunately, are brash enough never to bother asking their elders for advice, which, in the field of computer science, is a good thing, because their elders are apt to say goofy, antediluvian things like "the demand for keypunch operators will exceed 100,000,000 by the year 2010" and "lisp careers are really very hot right now." I, too, have no idea what I'm talking about when I give advice to college students. So you'd be better off ignoring what I'm saying here and instead building some kind of online software thing that lets other students find people to go out on dates with. Nevertheless. Next:

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:

Related:  dina0skulljohnr708infinityseeker