As a student who is just about to graduate in 6 months and having secured a job with one company, with about 10 offers from other companies, I would agree that knowing C and memory management is of the upmost importance. For a technical background, knowing your data structures, object oriented principles, and algorithms are also important. I asked how to implement linked lists, tell them what the different parts of different languages' OO properties (i.e. Java vs. C++), and how many bytes some data structure would take up. You need a good understanding of the basic concepts, such as time complexity of almost every basic algorithm (search/sort/iterate) for most basic data structures (trees/graphs/arrays). Always be reading and learning new concepts, not just new tools. Books that will help you are going to be such items as Pragmatic Programmer, Code Complete, Joel on Software, Mythical Man Month, and almost any book these reference.
I think the most awarding experience that I have had during my time in college has been being involved in open source projects. They can teach you just as much about real world working as any co-op or internship can, if not do a better job of it. From my experience, open source projects usually have a much better development cycle then your ordinary company. Being able to talk about two solid projects that were not a trivial school assignment are important. And most open source projects will have politics to deal with, which go on at every aspect of every job.
Finally, think about the people aspect. Working in teams is important, VERY, VERY important! Every single company I went to wanted to know what _team_ projects I had worked on, and how I contributed to that team. Very often, I was asked about the different aspects of working on the team etc. Leadership is a big factor here, being a team leader or showing leadership capabilities is important. You need to be able to be the alpha dog in a pack, although they are going to hire you as a grunt to start.
There is already a lot of existing research in the area. I recently attended a security seminar by CERIAS at Purdue University. They have a video discussing this same topic. There is already research going into how to thwart these attacks.
From the abstract:
n this work, we identify, demonstrate and mitigate insider attacks against measurement-based adaptation mechanisms in unstructured multicast overlay networks. The attacks target the overlay network construction, maintenance, and availability and allow malicious nodes to control significant traffic in the network, facilitating selective forwarding, traffic analysis, and overlay partitioning. We propose techniques to decrease the number of incorrect or unnecessary adaptations by using outlier detection.
About the speaker:
David Zage is a third year PhD student in the Computer Science Department at Purdue University under the supervision of Professor Cristina Nita-Rotaru.
The windows mobile, symbian or even palm-based platforms are definitely just as able (even more so) when it comes to that, while delivering much more bang for your buck. Ofcourse, then you don't get the geek cred for running linux, but, if that is your prime motivator for purchasing decisions, odds are you're throwing a lot of good money down the drain.
Yes, because I love spending 100's of dollars in CALs on all of the machines that I have to buy....
1 I think the motivation for this service is skewed. The only motivation I can detect for Open Id is to save people FIVE SECONDS by logging into a new forum, website... etc. People already have their own methods to achieve this kind of simplicity in their lives. There are many uses... who really wantes to have to register to 50 sites, just because you wish to post a comment or two, or ask a question at a site?
2 Tools like Firefox's "remember password" make these kinds of shared identity systems obosolete, don't they? Who cares how many passwords you have to remember? You don't have to remember ANY of them anymore, really. If you are really concious about security, you NEVER use these "I will remember your password..." becuase if someone gets physical access to your system, you are screwed.
3 Caution should be applied when linking with systems using any kind of third party medium. KISS. How is linking a URL security-prone? You are NOT showing your password to anyone, at anytime.
4 This could be ripe for phishing. Phishing what? Your ID?
5 This system provides a false sense of security. You will never know exactly who you are dealing with over the internet. Behavioural tests should be part of this system and they are lacking. Also, nobody is going to use a secure pipe at both ends to handle this kind of data, are they? Uh... Once again, they DO NOT REQUIRE PASSWORDS So why use a secure pipe FOR A URL?
Personally, I belive that this is a great service, and will be welcomed by myself. The genius of the idea, and let me note one last time, the non-need of a password is a key feature of this idea.
I do have to say that just because M$ is a security hole doesn't mean that exploiting it in a milicious was is right, or even justified. There are correct ways to report the vulnerabilities, and those are the paths that this person should have taken.
Think of it this way, if you have a kid that is playing in a playground, and you look away for a minute or two, is it right/justified for a kidnapper to take your kid? Sure, it was your fault that you were not looking, but does that mean that since there was an opening to take your kid, someone is justified in taking your kid?
Sure, would-be kidnapper may come up to you and say "hey man/lady, your kid isn't being watched and could be taken easily". Even if the parent STILL keep an eye on their kid, does that make it right for the kidnapper to THEN take your kid just to proove a point and to let other know you were not looking?
This hacker deserves to be put in prision, they need to send a message saying that making virus's isn't right and it will not be tolerated.
As a student who is just about to graduate in 6 months and having secured a job with one company, with about 10 offers from other companies, I would agree that knowing C and memory management is of the upmost importance. For a technical background, knowing your data structures, object oriented principles, and algorithms are also important. I asked how to implement linked lists, tell them what the different parts of different languages' OO properties (i.e. Java vs. C++), and how many bytes some data structure would take up. You need a good understanding of the basic concepts, such as time complexity of almost every basic algorithm (search/sort/iterate) for most basic data structures (trees/graphs/arrays). Always be reading and learning new concepts, not just new tools. Books that will help you are going to be such items as Pragmatic Programmer, Code Complete, Joel on Software, Mythical Man Month, and almost any book these reference.
I think the most awarding experience that I have had during my time in college has been being involved in open source projects. They can teach you just as much about real world working as any co-op or internship can, if not do a better job of it. From my experience, open source projects usually have a much better development cycle then your ordinary company. Being able to talk about two solid projects that were not a trivial school assignment are important. And most open source projects will have politics to deal with, which go on at every aspect of every job.
Finally, think about the people aspect. Working in teams is important, VERY, VERY important! Every single company I went to wanted to know what _team_ projects I had worked on, and how I contributed to that team. Very often, I was asked about the different aspects of working on the team etc. Leadership is a big factor here, being a team leader or showing leadership capabilities is important. You need to be able to be the alpha dog in a pack, although they are going to hire you as a grunt to start.
The windows mobile, symbian or even palm-based platforms are definitely just as able (even more so) when it comes to that, while delivering much more bang for your buck. Ofcourse, then you don't get the geek cred for running linux, but, if that is your prime motivator for purchasing decisions, odds are you're throwing a lot of good money down the drain. Yes, because I love spending 100's of dollars in CALs on all of the machines that I have to buy....
1 I think the motivation for this service is skewed. The only motivation I can detect for Open Id is to save people FIVE SECONDS by logging into a new forum, website... etc. People already have their own methods to achieve this kind of simplicity in their lives.
There are many uses... who really wantes to have to register to 50 sites, just because you wish to post a comment or two, or ask a question at a site?
2 Tools like Firefox's "remember password" make these kinds of shared identity systems obosolete, don't they? Who cares how many passwords you have to remember? You don't have to remember ANY of them anymore, really.
If you are really concious about security, you NEVER use these "I will remember your password..." becuase if someone gets physical access to your system, you are screwed.
3 Caution should be applied when linking with systems using any kind of third party medium. KISS.
How is linking a URL security-prone? You are NOT showing your password to anyone, at anytime.
4 This could be ripe for phishing.
Phishing what? Your ID?
5 This system provides a false sense of security. You will never know exactly who you are dealing with over the internet. Behavioural tests should be part of this system and they are lacking. Also, nobody is going to use a secure pipe at both ends to handle this kind of data, are they? Uh...
Once again, they DO NOT REQUIRE PASSWORDS So why use a secure pipe FOR A URL?
Personally, I belive that this is a great service, and will be welcomed by myself. The genius of the idea, and let me note one last time, the non-need of a password is a key feature of this idea.
I do have to say that just because M$ is a security hole doesn't mean that exploiting it in a milicious was is right, or even justified. There are correct ways to report the vulnerabilities, and those are the paths that this person should have taken.
Think of it this way, if you have a kid that is playing in a playground, and you look away for a minute or two, is it right/justified for a kidnapper to take your kid? Sure, it was your fault that you were not looking, but does that mean that since there was an opening to take your kid, someone is justified in taking your kid?
Sure, would-be kidnapper may come up to you and say "hey man/lady, your kid isn't being watched and could be taken easily". Even if the parent STILL keep an eye on their kid, does that make it right for the kidnapper to THEN take your kid just to proove a point and to let other know you were not looking?
This hacker deserves to be put in prision, they need to send a message saying that making virus's isn't right and it will not be tolerated.
HEHeHehehehehehe.... dupes dupes everywhere... and only 3 posts down :(
Fort Wayne, Indiana already has this, with a much, MUCH better name... waiter on the way.
waiterontheway.com