"This is not the case for homework or class projects. If a professor or another student takes your code and uses it somewhere without your permission, it would be copyright infringement."
This is true. Most of the clauses are really there for something like if you produce a really astounding work of literature as part of a writing class, or a breakthrough research paper. The University might claim the right to republish that work in another form. They will always credit you for it though. If you are a graduate student, it is very likely that this will happen, and more likely that you will receive partial credit on the final paper -- your adviser will likely claim the authorship with you as an assistant. In these cases though, it is the University that owns the work, not a professor or a student. If a professor or a student took it, and it was not on behalf of the University, then it is definitely infringement.
As far as the contract goes, at my school the Calendar was the legally binding agreement. Whatever it said in the calendar was implicitly agreed to by the student when you signed up and paid for classes. It was explicitly agreed to by the institution when they published it. There may have been somewhere that I signed at some point as well that bound me to agree to the terms of the school calendar, I don't really remember.
In any case, you do not actually have to sign a contract for it to be valid. As far as legally binding goes, all you need is an offer from one party, and an acceptance of that offer from the other.
Party A provides something when Party B provides something else. In this case, services for money. Once both parties have agreed to the terms, it is a contract. It can be written by a lawyer, or by a student, on paper, or on a napkin. In many legal systems, verbal contracts are considered valid if there is a witness. A signature is not required in order to be bound by a contract -- only the exchange of goods for services. I believe a signature may be required if one party provides services and the other promises to reimburse them in the future.
This may be different at your University, or in your state or Country, which is why I suggested in the post title that the OP check the policies of their institution.
In my case, when the University extended me an offer of acceptance to the institution, and I accepted that offer by signing up for classes, then I was bound by the terms laid out in the calendar.
Each University has their own policy on this, and will make it pretty easy to find. Most University policies that I've looked at look something like this:
'Any work that you submit as part of your course requirements is the property of the University. Any work that you do while working on a research project for the University is the property of the University.'
Not surprisingly, this is the basic premise of many employment contracts as well.
'Anything you make while working for us is automatically our property.'
There are always exceptions, of course, for work that is done by you, on your own time and equipment, that has nothing to do with your coursework/job.
I've never really felt that these policies are that obscene, and I think that if you take a few minutes to think about it objectively, you may feel the same. In no case is someone laying claim to anything that might fall out of your head, only the material that you will produce at the explicit request of someone else (either your instructor or employer).
I took a grad level course at the end of my degree in which the prof tried to subtly communicate this to the grad students.
Each week we had to read and write a short review on a paper that had been peer reviewed and accepted into some CS or Eng journal somewhere. The topics were pretty broad, but all had something to do with the internet, or communication (the focus of the course).
At the end of the course, the professor revealed that he had purposely selected papers such that one third were considered today to be 'good' papers, one third were considered to be valid, but poorly written, and one third were considered to be pure bunk but well written.
He then posted a graph showing how people commented on each of the papers.
Not surprisingly, nearly every student reviewed all of the papers in a positive light.
I'm pretty sure that the professor was trying to teach a bit humility to the grad students. He also succeeded in proving "...that those who are supposed to review [the papers] are either incompetent or don't bother with their job, or that many "professional science" papers are actually pure bullshit, so you can't tell the difference?"
Id start by asking your publisher, they will know what format they will want. If they don't have any recommendations, then I would stick to something standard, that's good for writing long text.
Word and OpenOffice are both out. While they are fine tools, they are really designed for smaller documents.
Framemaker is a good tool, and is industry standard. It will cost though. Last I checked it worked on linux, mac and windows, although that was a long time ago.
You could take the plain text route, and use either latex or docbook. Both are good, and both are reasonable standards.
This should really be a series of videos, I think. There really is no single face of linux.
Some of the users I know include:
- College computer nerds
- Aging hippies fighting against the establishment
- Stereotypical sysadmin guy (tubby, cheetos, D&D)
- Punk style sysadmin guy (spiky purple hair, think Hackers)
- 20-something attractive blonde sysadmin lady (Trained on windows, switched to linux cause it wasted less of her time)
- My uncle, who works in a sawmill. He heard about it on CBC and bought Suse to install just to screw around with it. Guess he falls into the hobbyist category.
- All sorts of CTO/CIO types looking to save a buck.
- High Performance Computing people in physics labs (admittedly, there are more mac people here that I know).
One mistake that people often make with this comparison is that they compare two people of otherwise equal experience, but one with a four year degree, and one without.
Clearly, this comparison makes no sense - one of the people has a four year degree. i.e. they have four more years of experience.
If you want a great job in IT, and you don't want to fork out for school, then it's still possible. But don't expect to get one now. Plan for your great break only after committing to 3-4 years of mediocre IT jobs where you are learning while working.
You've still got to put in the time. Depending upon what you do during this time, and what employers you try to find afterwards, the four year degree vs four years of real experience debate could go either way.
If you're looking for secondary income, try picking up a part time job somewhere interesting.
Some options I'd consider:
A u-brew location. It's low effort most of the time, and you get to spend your day talking about beer with a wide variety of people.
Retail in a game store, or small hardware store. Again, you get to hang out and shoot the breeze all day with people that share interests.
Bartend. This requires a bit of a skill (takes 6 weeks to learn). I have a few friends in this industry, and they seem to enjoy themselves. Most only work 2 shifts a week, and pull about $80-200 a night, depending upon the sort of bar it is.
Commission sales. I worked for a bit at FutureShop (the CDN Best Buy). Their sales staff is all commission based. I've never had such a fun job. Also, commission sales pays quite well.
I've moved three times since University. Each time, I've found that the easiest way is to just put up an add on Craigslist to the effect of:
"3 bins of random computer stuff, come and get it. You have to take all of it if you want any of it."
Most times, I'll have someone over to the house that evening.
I'l usually do a quick pass over the bins and remove any data storage devices, or anything that may have some value on its own (video card, ram, etc) that I can sell seperately.
If you're applying from Europe, you may find it easier to get a Canadian work Visa (especially if you are a student) than a US Work Visa.
We have many of the same large employers (Microsoft in Vancouver, EA near Vancouver, IBM in Toronto/Victoria/Vancouver, SAP/Business Objects in Vancouver... don't think we have Oracle though). The tech sector in Vancouver is amicable to interesting startups and smaller shops. The sector in Toronto has a lot of business related IT. There are some interesting companies in Victoria and Montreal as well, but I don't know most of them.
Also, a co-op term in Canada (co-op is Canadian for Intern) will definitely pay. It won't pay as well as full time, but it's not awful. You can expect 2000 - 3500 CDN a month, sometimes higher, rarely lower, as far as a wage goes.
Careful with this one though. Most women are so used to guys being jerks that if you if you ask a question like 'how are you?' and actually show that you have a genuine interest in the answer, it's often construed as flirting.
I would say that the following things are the bare minimum:
1. Know how to program using one 'core' programming language. (C, C++, Java, C#, etc. Something commonly used for application development.) 2. Know a scripting language. (Python, perl, ruby, etc.) Know when you should use a scripting language or a core language. 3. Know how to use version control software to at least check in, check out, synch to latest revision and revert.
If you do only this, and can demonstrate to a potential employer that you know how to do these three things, you will be employable. If you can't do these three things, you will have a lot of difficulty getting a job.
After that, focus on: 4. Learn to communicate well. Be able to comprehend written material, write coherently, and speak effectively. 5. Knowing how to branch and merge code in source control. 6. Develop something real using both the core language and a scripting language.
This stuff is great to know. It will help you land a job (because you can demonstrate that you will be useful) and will put you quite a bit above the other new grads when you start working. Someone who just does the first three is a solid hire that has a lot to learn. Being able to do 4, 5 and 6 will make you look awesome compared to the average grad. This material is most useful after you've been hired.
Next: 7. Try to develop a thick client application with a gui; a command line application; an app for windows; an app for nix; a web application; something that uses a database; something that reads and writes files; something that works across a network. 8. Redo the above applications in a language that you don't know. Spend time thinking about what's the same, and what's different between the two languages. Why would you choose one over the other? 9. Go read some books on design patterns and best practices. 10. Know how to perform basic operations on a nix machine, a windows machine, and a mac. 11. Brush up on your 2nd year Comp Sci material. This will help in most interviews.
This section will help make you a flexible dev. If you do even half of this you will be able to tackle 90% of the problems that a new grad hire will face in their first job.
That's it.
I know that people will look at this list and think 'Well, that's a stupid list, everyone should be able to do that.' The reality is that most new grads can't. I've considered over 300 resumes in the last three years, and interviewed ~50 candidates; maybe 20 of those people met the first three requirements.
Even if you can just demonstrate the first three items, and somehow prove that you have some brains in your head (marks won't help with this, sorry) you will be hired. I promise.
Make some contacts with other managers (your previous manager is a good start) and talk w/ them about what they think is important. Mentoring can be a very useful tool.
If nothing else, pay attention to what they have to say about the people that you're going to start working with. Part of the job will be handling people's personalities. Other managers may have some insight into the new people you will be working with.
Also, consider buying older versions of the software. If these are secondary users, they probably won't need the latest features added in CS3, or even CS2 or CS1 for that matter.
You can typically pick up an older version of the software for quite cheap through craigslist, eBay, or even your local retailer.
"Owners of first-generation Intel Macs that used (32-bit only) Core Duo CPUs may not be so happy knowing that Vista will be the last Windows they will be able to run."
Vista is going to be around until at least 2010 as the flagship OS for MSFT. Likely later. It will still be usable for at least 2 years or after that. So I bought a new Intel based Mac in January 2007. This means that it will be at least three years before MSFT releases a new OS, and another two before I'm compelled to install it. 5 years is long enough for me to comfortably say 'this hardware is too old to support this new fangled OS.'
Now, if they were dropping 32-bit support for Vista, that would be a concern. For Vista++, meh. I don't really care.
OK, so your basic problem here is that you are trying to explain something that they don't care about, don't know about, but want to understand in order to run their business. This is a tough position, but it could be worse (most teachers for example have to deal with don't know, don't care, don't desire to learn. You at least have desire to work with.).
Starting from there, I'd offer a few tips.
1. Don't talk about choices that don't matter. If you have a set of 6 choices, but you know that 4 of them really aren't options, or maybe they are similar enough to each other that they don't need discussion, don't talk about them. It's really easy to distract them with other information. Don't.
2. Only tell them the least they need to know. If you are comparing two technologies, think about it ahead of time and try to come up with a short list (of maybe three) things that you want to use for comparison. Say, time to implement, maintainability in the long term, and if you have the talent to implement in house or not. Don't talk about technical details that don't really matter to them. You know them, your team needs to know them, your financial department doesn't. (Think of it this way, how much of your yearly financials do you really care about? Me, I just want to see the bottom line, the profit for the year, and my bonus calculation; the rest is important to the bean counters, but not to me.)
3. Then you can talk in terms that they understand. "Solution A will be better in the long term, and it will cost marginally more, but we do not have talent in house to start the project for at least two months. Solution B can be started right away, and has a lower time to completion, but we'll have to hire someone in a year to blah blah blah." These are business decisions that they are familiar with.
4. If you have to talk tech, start at 50,000 feet and go down. Sometimes you have to get nerdy. If this is one of those times, take a few steps back. Explain the general problem that you are trying to solve. Then, explain *general* technology options (not specific technologies, just general fields of technologies) and how they might be used to solve your problem. Then come down to the decision that you have to make now, explain how each choice fits into a general technology pattern, and how each choice or pattern addresses your current business problem. Basically what you're doing here is your walking them through the issue from their office, to your program managers office, to your desk. Don't start at your desk - it's too much information at once.
5. Present a suggestion, not an option. Take some extra time before the meeting and try to figure out what decision you think is best. Then, suggest one technology strongly before talking about the others. Rather than saying "We could go with options A, B, C or D; let me explain the differences," you say "Option C is the best way to solve this issue and here's why. I examined options A, B and D but I found that option A was lacking.... option B was too expensive and option D was dumb." Most meetings don't start with suggestions, we try to be democratic about it and open for general discussion. If you suggest rather than ask you will: save time, have a better chance of getting what you want, appear as a leader.
6. Practice talking to other people. Sales is a great way to improve these skills. Teaching is a good way to improve these skills. Basically, anywhere you talk to other people is a good way to improve these skills. Take some time and practice explaining stuff to people. If you have kids, pull one of them aside for an afternoon and explain something (how to make a web page, why the sky is blue, the difference between a goose and a gander, etc.). Kids are smart, and they are useful for explanations because they ask all kinds of weird questions, and then get bored and start playing with their toes. If you don't have access to a kid, try your parents, show them how to use skype, or their digital camera. Volun
Doing something because you're bored and have nothing better to do... sound like the definition of a hobby to me. If I have nothing to do for several days in a row, I'll consider starting a project. If that project lasts for several days in a row, I'll consider doing it on an ongoing basis; and thus, a hobby is born.
If what this guy means to say is that "Several people weren't spending their free time driving race cars, collecting model trains, teaching pole dancing classes or saving the world, so they decided to dedicate that time to writing code." Then, yeah, he's pretty much correct.
There are other reasons too, but hobbyist developers are definitely a large portion of of the FOSS contributors.
From the article: "loss of reasonable royalties, reduced sales and/or lost profits as a result of the infringing activities."
Why wouldn't Interlink say something sooner to Nintendo. It's not like the Wii controller was kept a secret until release. If Interlink really feels that they are suffering from reduced sales or loss of profits due to Nintendo selling an infringing controller, why wouldn't they mention it when the controller style was first announced and seek license revenue then rather than wait until the product was released?
"No, really it's ok. It's nearly impossible for you to screw it up so bad I can't fix it easily."
That is probably the best advice that you can offer someone. Most people are so worried about breaking it that they won't do anything to it. Explaining that it's always fixable goes a long way to improving anyone's ability.
I've spent quite some time teaching basic computer/Internet usage to a wide variety of people; some as young as 5, some in their 90s. At some point you realize that there are actually two issues with regards to Internet safety. The first is securing your machine from malicious attacks (viruses, spyware, malware, etc). The second is securing yourself from social attacks by others.
You will probably find a lot of information on the first kind of safety - this is what most tech people will talk about when speaking of Internet security. There are a lot of people much smarter than I am that could tell you a lot of great ways to secure yourself. My basic advice to people was always:
- If you have high-speed Internet, buy a router with some basic firewall abilities (typically between $50 and $80 CDN)
- invest in some antivirus software. Run it at least once a week. If you have a thick client email application, configure your antivirus application to check your mail as it comes in.
- Install a spyware application. Tell her to run it once a month.
- If it's an option, buy a Mac. I would avoid installing linux simply because when Edna from the bridge club comes by to help her do something, Edna probably won't know anything about Linux, but she may know some of the more mainstream OSs/applications.
- Install a browser other than IE. Do your best to prevent her from accidentally using IE.
- Do not let her use Outlook or Outlook express. By itself it's not responsible for Internet security, but it is inherently more susceptible to problems than other thick clients.
- if at all possible, partition her drive into a data partition and an OS/Apps partition. That way you can easily reinstall everything if yo have to with only minimal data loss.
That's all that's really needed. The harder part of Internet security is actually getting the individual to act in a secure manner. Start by explaining that communicating over the Internet is just like communicating in real life. Make her feel that this is an extension of what she has been doing for the last 80 years, not some new fangled thing that has just started. That will make her feel a little more comfortable with what she is doing. With every suggestion, relate it to something that she already understands. Some basic guidelines:
- There are places that you can safely go all of the time, and there are places that you should probably never go to (insert name of seedy part of town here).
- There are people that you can trust on the Internet, and there are lots of people that you cannot trust.
- Never ever every give anyone money just because they ask for it. Only give money to people in exchange for services or products that *YOU* asked for (not that they think you need). Obviously some room for charity here, but do reinforce this point. The elderly are the target of most of the scams that try to take money for no good reason (Think "I'm a Nigerian prince that needs to borrow..."). My wife works at a bank and stops about one old lady every six weeks from emptying her bank account so that she can give it to someone in Nigeria/Egypt/Publishers Clearing House, etc.
- When providing information to people, it's always better to go to them then to have them come to you. If someone from Bank of America wants you to log into your account to check something, open up your browser and type in http://www.bankofamerica.com/, never click on a link that they provided. Yes, there is a difference. No, you probably won't be able to tell. Relate this to the idea that when your bank calls you for financial information it is always a better idea to call them right back than to provide information directly. She should initiate all transactions.
- When asked to fill out a web form, always ask these three questions:
And if you somehow convinced the officer that he should be placed under arrest and come with you peacefully. I have a feeling that if you tried to intervene during an arrest by walking up to an officer and saying "Excuse me sir, but I'm placing you under Citizen's arrest," you would be arrested or charged as well.
Most officers do not take kindly to people intervening during an arrest.
"IE requires Windows to run. If you can install windows, even if it's on a VM, then you can run IE. If you choose not to install windows then you can't install IE. Try this browser cam website instead."
Actually -- that's a pretty good place to look. The poster did ask for digital copies - but assuming that s/he would be willing to do the work of scanning/copying the music a Library is a great resource. Most Universities that have a music program will also have a good library of sheet music.
Does it really? I thought that having it in a contract would be sufficient. Can you point me at your references -- I'd like to learn more.
"This is not the case for homework or class projects. If a professor or another student takes your code and uses it somewhere without your permission, it would be copyright infringement."
This is true. Most of the clauses are really there for something like if you produce a really astounding work of literature as part of a writing class, or a breakthrough research paper. The University might claim the right to republish that work in another form. They will always credit you for it though. If you are a graduate student, it is very likely that this will happen, and more likely that you will receive partial credit on the final paper -- your adviser will likely claim the authorship with you as an assistant. In these cases though, it is the University that owns the work, not a professor or a student. If a professor or a student took it, and it was not on behalf of the University, then it is definitely infringement.
As far as the contract goes, at my school the Calendar was the legally binding agreement. Whatever it said in the calendar was implicitly agreed to by the student when you signed up and paid for classes. It was explicitly agreed to by the institution when they published it. There may have been somewhere that I signed at some point as well that bound me to agree to the terms of the school calendar, I don't really remember.
In any case, you do not actually have to sign a contract for it to be valid. As far as legally binding goes, all you need is an offer from one party, and an acceptance of that offer from the other.
Party A provides something when Party B provides something else. In this case, services for money. Once both parties have agreed to the terms, it is a contract. It can be written by a lawyer, or by a student, on paper, or on a napkin. In many legal systems, verbal contracts are considered valid if there is a witness. A signature is not required in order to be bound by a contract -- only the exchange of goods for services. I believe a signature may be required if one party provides services and the other promises to reimburse them in the future.
This may be different at your University, or in your state or Country, which is why I suggested in the post title that the OP check the policies of their institution.
In my case, when the University extended me an offer of acceptance to the institution, and I accepted that offer by signing up for classes, then I was bound by the terms laid out in the calendar.
You can read more about contract law here: http://smallbusiness.findlaw.com/business-forms-contracts/business-forms-contracts-overview/business-forms-contracts-overview-simple.html
Each University has their own policy on this, and will make it pretty easy to find. Most University policies that I've looked at look something like this:
'Any work that you submit as part of your course requirements is the property of the University. Any work that you do while working on a research project for the University is the property of the University.'
Not surprisingly, this is the basic premise of many employment contracts as well.
'Anything you make while working for us is automatically our property.'
There are always exceptions, of course, for work that is done by you, on your own time and equipment, that has nothing to do with your coursework/job.
I've never really felt that these policies are that obscene, and I think that if you take a few minutes to think about it objectively, you may feel the same. In no case is someone laying claim to anything that might fall out of your head, only the material that you will produce at the explicit request of someone else (either your instructor or employer).
I took a grad level course at the end of my degree in which the prof tried to subtly communicate this to the grad students.
Each week we had to read and write a short review on a paper that had been peer reviewed and accepted into some CS or Eng journal somewhere. The topics were pretty broad, but all had something to do with the internet, or communication (the focus of the course).
At the end of the course, the professor revealed that he had purposely selected papers such that one third were considered today to be 'good' papers, one third were considered to be valid, but poorly written, and one third were considered to be pure bunk but well written.
He then posted a graph showing how people commented on each of the papers.
Not surprisingly, nearly every student reviewed all of the papers in a positive light.
I'm pretty sure that the professor was trying to teach a bit humility to the grad students. He also succeeded in proving "...that those who are supposed to review [the papers] are either incompetent or don't bother with their job, or that many "professional science" papers are actually pure bullshit, so you can't tell the difference?"
Id start by asking your publisher, they will know what format they will want. If they don't have any recommendations, then I would stick to something standard, that's good for writing long text.
Word and OpenOffice are both out. While they are fine tools, they are really designed for smaller documents.
Framemaker is a good tool, and is industry standard. It will cost though. Last I checked it worked on linux, mac and windows, although that was a long time ago.
You could take the plain text route, and use either latex or docbook. Both are good, and both are reasonable standards.
This should really be a series of videos, I think.
There really is no single face of linux.
Some of the users I know include:
- College computer nerds
- Aging hippies fighting against the establishment
- Stereotypical sysadmin guy (tubby, cheetos, D&D)
- Punk style sysadmin guy (spiky purple hair, think Hackers)
- 20-something attractive blonde sysadmin lady (Trained on windows, switched to linux cause it wasted less of her time)
- My uncle, who works in a sawmill. He heard about it on CBC and bought Suse to install just to screw around with it. Guess he falls into the hobbyist category.
- All sorts of CTO/CIO types looking to save a buck.
- High Performance Computing people in physics labs (admittedly, there are more mac people here that I know).
and the list goes on.
One mistake that people often make with this comparison is that they compare two people of otherwise equal experience, but one with a four year degree, and one without.
Clearly, this comparison makes no sense - one of the people has a four year degree. i.e. they have four more years of experience.
If you want a great job in IT, and you don't want to fork out for school, then it's still possible. But don't expect to get one now. Plan for your great break only after committing to 3-4 years of mediocre IT jobs where you are learning while working.
You've still got to put in the time. Depending upon what you do during this time, and what employers you try to find afterwards, the four year degree vs four years of real experience debate could go either way.
If you're looking for secondary income, try picking up a part time job somewhere interesting.
Some options I'd consider:
A u-brew location. It's low effort most of the time, and you get to spend your day talking about beer with a wide variety of people.
Retail in a game store, or small hardware store. Again, you get to hang out and shoot the breeze all day with people that share interests.
Bartend. This requires a bit of a skill (takes 6 weeks to learn). I have a few friends in this industry, and they seem to enjoy themselves. Most only work 2 shifts a week, and pull about $80-200 a night, depending upon the sort of bar it is.
Commission sales. I worked for a bit at FutureShop (the CDN Best Buy). Their sales staff is all commission based. I've never had such a fun job. Also, commission sales pays quite well.
I've moved three times since University.
Each time, I've found that the easiest way is to just put up an add on Craigslist to the effect of:
"3 bins of random computer stuff, come and get it. You have to take all of it if you want any of it."
Most times, I'll have someone over to the house that evening.
I'l usually do a quick pass over the bins and remove any data storage devices, or anything that may have some value on its own (video card, ram, etc) that I can sell seperately.
If you're applying from Europe, you may find it easier to get a Canadian work Visa (especially if you are a student) than a US Work Visa.
We have many of the same large employers (Microsoft in Vancouver, EA near Vancouver, IBM in Toronto/Victoria/Vancouver, SAP/Business Objects in Vancouver... don't think we have Oracle though). The tech sector in Vancouver is amicable to interesting startups and smaller shops. The sector in Toronto has a lot of business related IT. There are some interesting companies in Victoria and Montreal as well, but I don't know most of them.
Also, a co-op term in Canada (co-op is Canadian for Intern) will definitely pay. It won't pay as well as full time, but it's not awful. You can expect 2000 - 3500 CDN a month, sometimes higher, rarely lower, as far as a wage goes.
Careful with this one though.
Most women are so used to guys being jerks that if you if you ask a question like 'how are you?' and actually show that you have a genuine interest in the answer, it's often construed as flirting.
I would say that the following things are the bare minimum:
1. Know how to program using one 'core' programming language. (C, C++, Java, C#, etc. Something commonly used for application development.)
2. Know a scripting language. (Python, perl, ruby, etc.) Know when you should use a scripting language or a core language.
3. Know how to use version control software to at least check in, check out, synch to latest revision and revert.
If you do only this, and can demonstrate to a potential employer that you know how to do these three things, you will be employable. If you can't do these three things, you will have a lot of difficulty getting a job.
After that, focus on:
4. Learn to communicate well. Be able to comprehend written material, write coherently, and speak effectively.
5. Knowing how to branch and merge code in source control.
6. Develop something real using both the core language and a scripting language.
This stuff is great to know. It will help you land a job (because you can demonstrate that you will be useful) and will put you quite a bit above the other new grads when you start working. Someone who just does the first three is a solid hire that has a lot to learn. Being able to do 4, 5 and 6 will make you look awesome compared to the average grad. This material is most useful after you've been hired.
Next:
7. Try to develop a thick client application with a gui; a command line application; an app for windows; an app for nix; a web application; something that uses a database; something that reads and writes files; something that works across a network.
8. Redo the above applications in a language that you don't know. Spend time thinking about what's the same, and what's different between the two languages. Why would you choose one over the other?
9. Go read some books on design patterns and best practices.
10. Know how to perform basic operations on a nix machine, a windows machine, and a mac.
11. Brush up on your 2nd year Comp Sci material. This will help in most interviews.
This section will help make you a flexible dev. If you do even half of this you will be able to tackle 90% of the problems that a new grad hire will face in their first job.
That's it.
I know that people will look at this list and think 'Well, that's a stupid list, everyone should be able to do that.' The reality is that most new grads can't. I've considered over 300 resumes in the last three years, and interviewed ~50 candidates; maybe 20 of those people met the first three requirements.
Even if you can just demonstrate the first three items, and somehow prove that you have some brains in your head (marks won't help with this, sorry) you will be hired. I promise.
"I'm looking for inexpensive, and legal."
Sounds like my dating requirements.
best sig I've read.
gratz on the 10 year, it's been great being a reader.
Make some contacts with other managers (your previous manager is a good start) and talk w/ them about what they think is important. Mentoring can be a very useful tool.
If nothing else, pay attention to what they have to say about the people that you're going to start working with. Part of the job will be handling people's personalities. Other managers may have some insight into the new people you will be working with.
Also, consider buying older versions of the software.
If these are secondary users, they probably won't need the latest features added in CS3, or even CS2 or CS1 for that matter.
You can typically pick up an older version of the software for quite cheap through craigslist, eBay, or even your local retailer.
"Owners of first-generation Intel Macs that used (32-bit only) Core Duo CPUs may not be so happy knowing that Vista will be the last Windows they will be able to run."
Vista is going to be around until at least 2010 as the flagship OS for MSFT. Likely later. It will still be usable for at least 2 years or after that. So I bought a new Intel based Mac in January 2007. This means that it will be at least three years before MSFT releases a new OS, and another two before I'm compelled to install it. 5 years is long enough for me to comfortably say 'this hardware is too old to support this new fangled OS.'
Now, if they were dropping 32-bit support for Vista, that would be a concern.
For Vista++, meh. I don't really care.
OK, so your basic problem here is that you are trying to explain something that they don't care about, don't know about, but want to understand in order to run their business. This is a tough position, but it could be worse (most teachers for example have to deal with don't know, don't care, don't desire to learn. You at least have desire to work with.).
.... option B was too expensive and option D was dumb." Most meetings don't start with suggestions, we try to be democratic about it and open for general discussion. If you suggest rather than ask you will: save time, have a better chance of getting what you want, appear as a leader.
Starting from there, I'd offer a few tips.
1. Don't talk about choices that don't matter.
If you have a set of 6 choices, but you know that 4 of them really aren't options, or maybe they are similar enough to each other that they don't need discussion, don't talk about them. It's really easy to distract them with other information. Don't.
2. Only tell them the least they need to know.
If you are comparing two technologies, think about it ahead of time and try to come up with a short list (of maybe three) things that you want to use for comparison. Say, time to implement, maintainability in the long term, and if you have the talent to implement in house or not. Don't talk about technical details that don't really matter to them. You know them, your team needs to know them, your financial department doesn't. (Think of it this way, how much of your yearly financials do you really care about? Me, I just want to see the bottom line, the profit for the year, and my bonus calculation; the rest is important to the bean counters, but not to me.)
3. Then you can talk in terms that they understand.
"Solution A will be better in the long term, and it will cost marginally more, but we do not have talent in house to start the project for at least two months. Solution B can be started right away, and has a lower time to completion, but we'll have to hire someone in a year to blah blah blah." These are business decisions that they are familiar with.
4. If you have to talk tech, start at 50,000 feet and go down.
Sometimes you have to get nerdy. If this is one of those times, take a few steps back. Explain the general problem that you are trying to solve. Then, explain *general* technology options (not specific technologies, just general fields of technologies) and how they might be used to solve your problem. Then come down to the decision that you have to make now, explain how each choice fits into a general technology pattern, and how each choice or pattern addresses your current business problem. Basically what you're doing here is your walking them through the issue from their office, to your program managers office, to your desk. Don't start at your desk - it's too much information at once.
5. Present a suggestion, not an option.
Take some extra time before the meeting and try to figure out what decision you think is best. Then, suggest one technology strongly before talking about the others. Rather than saying "We could go with options A, B, C or D; let me explain the differences," you say "Option C is the best way to solve this issue and here's why. I examined options A, B and D but I found that option A was lacking
6. Practice talking to other people.
Sales is a great way to improve these skills. Teaching is a good way to improve these skills. Basically, anywhere you talk to other people is a good way to improve these skills. Take some time and practice explaining stuff to people. If you have kids, pull one of them aside for an afternoon and explain something (how to make a web page, why the sky is blue, the difference between a goose and a gander, etc.). Kids are smart, and they are useful for explanations because they ask all kinds of weird questions, and then get bored and start playing with their toes. If you don't have access to a kid, try your parents, show them how to use skype, or their digital camera. Volun
Doing something because you're bored and have nothing better to do... sound like the definition of a hobby to me. If I have nothing to do for several days in a row, I'll consider starting a project. If that project lasts for several days in a row, I'll consider doing it on an ongoing basis; and thus, a hobby is born.
If what this guy means to say is that "Several people weren't spending their free time driving race cars, collecting model trains, teaching pole dancing classes or saving the world, so they decided to dedicate that time to writing code." Then, yeah, he's pretty much correct.
There are other reasons too, but hobbyist developers are definitely a large portion of of the FOSS contributors.
From the article: "loss of reasonable royalties, reduced sales and/or lost profits as a result of the infringing activities."
Why wouldn't Interlink say something sooner to Nintendo. It's not like the Wii controller was kept a secret until release. If Interlink really feels that they are suffering from reduced sales or loss of profits due to Nintendo selling an infringing controller, why wouldn't they mention it when the controller style was first announced and seek license revenue then rather than wait until the product was released?
"No, really it's ok. It's nearly impossible for you to screw it up so bad I can't fix it easily."
That is probably the best advice that you can offer someone. Most people are so worried about breaking it that they won't do anything to it. Explaining that it's always fixable goes a long way to improving anyone's ability.
I've spent quite some time teaching basic computer/Internet usage to a wide variety of people; some as young as 5, some in their 90s. At some point you realize that there are actually two issues with regards to Internet safety. The first is securing your machine from malicious attacks (viruses, spyware, malware, etc). The second is securing yourself from social attacks by others.
You will probably find a lot of information on the first kind of safety - this is what most tech people will talk about when speaking of Internet security. There are a lot of people much smarter than I am that could tell you a lot of great ways to secure yourself. My basic advice to people was always:
- If you have high-speed Internet, buy a router with some basic firewall abilities (typically between $50 and $80 CDN)
- invest in some antivirus software. Run it at least once a week. If you have a thick client email application, configure your antivirus application to check your mail as it comes in.
- Install a spyware application. Tell her to run it once a month.
- If it's an option, buy a Mac. I would avoid installing linux simply because when Edna from the bridge club comes by to help her do something, Edna probably won't know anything about Linux, but she may know some of the more mainstream OSs/applications.
- Install a browser other than IE. Do your best to prevent her from accidentally using IE.
- Do not let her use Outlook or Outlook express. By itself it's not responsible for Internet security, but it is inherently more susceptible to problems than other thick clients.
- if at all possible, partition her drive into a data partition and an OS/Apps partition. That way you can easily reinstall everything if yo have to with only minimal data loss.
That's all that's really needed. The harder part of Internet security is actually getting the individual to act in a secure manner. Start by explaining that communicating over the Internet is just like communicating in real life. Make her feel that this is an extension of what she has been doing for the last 80 years, not some new fangled thing that has just started. That will make her feel a little more comfortable with what she is doing. With every suggestion, relate it to something that she already understands. Some basic guidelines:
- There are places that you can safely go all of the time, and there are places that you should probably never go to (insert name of seedy part of town here).
- There are people that you can trust on the Internet, and there are lots of people that you cannot trust.
- Never ever every give anyone money just because they ask for it. Only give money to people in exchange for services or products that *YOU* asked for (not that they think you need). Obviously some room for charity here, but do reinforce this point. The elderly are the target of most of the scams that try to take money for no good reason (Think "I'm a Nigerian prince that needs to borrow..."). My wife works at a bank and stops about one old lady every six weeks from emptying her bank account so that she can give it to someone in Nigeria/Egypt/Publishers Clearing House, etc.
- When providing information to people, it's always better to go to them then to have them come to you. If someone from Bank of America wants you to log into your account to check something, open up your browser and type in http://www.bankofamerica.com/, never click on a link that they provided. Yes, there is a difference. No, you probably won't be able to tell. Relate this to the idea that when your bank calls you for financial information it is always a better idea to call them right back than to provide information directly. She should initiate all transactions.
- When asked to fill out a web form, always ask these three questions:
"...if you had the balls to do it."
And if you somehow convinced the officer that he should be placed under arrest and come with you peacefully. I have a feeling that if you tried to intervene during an arrest by walking up to an officer and saying "Excuse me sir, but I'm placing you under Citizen's arrest," you would be arrested or charged as well.
Most officers do not take kindly to people intervening during an arrest.
I think that your answer was basically:
"IE requires Windows to run. If you can install windows, even if it's on a VM, then you can run IE. If you choose not to install windows then you can't install IE. Try this browser cam website instead."
Really -- that's a pretty reasonable answer.
Actually -- that's a pretty good place to look.
The poster did ask for digital copies - but assuming that s/he would be willing to do the work of scanning/copying the music a Library is a great resource. Most Universities that have a music program will also have a good library of sheet music.