All I learned in college was how to work for someone else
stefankendall.com
stefankendall.com
I learned a good basis in information theory, maths and software engineering.
Besides that I learned to analyze, research, work together on and write about software development processes.
I also met many people who were interested in the same things as I am, and many people who are interested in different things but still in the same field or in a field that touches my field.
And althought I learned how to work for someone else I also definitely learned how to start for myself and build something cool :)
I get the feeling you're just saying you picked the wrong major, it has nothing to do with wether college is right for you.
Anyway to answer your question, I am a recent college graduate and I think I can answer most of those questions and could even if I didn't work at a startup or read HN daily because I have a major in computer science and a minor in entrepreneurship that in my opinion taught me pretty well.
I would like to add more than just a snarky comment like that, but the post is high on bitterness and low on content. It's a curious flip side to the "college doesn't teach people how to work on a team in a company, it just teaches a bunch of theory nonsense" cliche, though. And I think both of those views are way off the mark with the disregard for theory. I'd rather work with (or start a company with) the guy who knows what his code does, and why it does it, any day over the guy who is more proficient at a certain set of tools, or knows more about the details of starting a business.
"1. Plagiarism is bad.
Wrong! If the licensing is right, copy to your heart's content. If you're not in violation of copyright, trademark, or patent, you can do whatever you want with someone else's creation. Sometimes they even give you permission. Did you find a real swell formula online? Did you know you can't copyright formulas?""
This isn't plagiarism. Plagiarism is when you copy others' work and claim that the work is yours. You are welcome to copy the entirety of a Wikipedia article verbatim and submit it, as long as you appropriately cite it. Of course, you may not get a good score, since your contribution to the work was zero, but you haven't done any unethical.
This is true both in academia and industry.
Plagiarism, as it affected my grading, was copying without attribution. Attribution is rarely required for most licensing, except where it is. These sorts of distinctions are lost in the collegiate machine.
"Redistribution and use in source and binary forms are permitted provided that the above copyright notice and this paragraph are duplicated in all such forms and that any documentation, advertising materials, and other materials related to such distribution and use acknowledge that the software was developed by the <organization>."
Whew. So maybe the third popular might be The Apache License, but this states:
"You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to..."
And so on. I am unaware of, but would be interested in knowing about, licenses that would allow you to verbatim take code and also claim it as your own work.
Plenty of people copy code straight off of blogs, which due to the DMCA are given implied copyright. Stackoverflow, also, requires attribution under the CC license, but nobody attributes stackoverflow when applying fixes to their problems.
If I include an MIT licensed JS file, I can replace functions willy nilly, or rewrite parts of the code. If it's LGPL3 or GPL, I can't.
Licensing is more nuanced than you're describing, but pragmatically I never need to cite anything. The most I need to deal with licensing is handling proprietary code (unlicensed github code, for example), and GPL/LGPL.
http://en.wikipedia.org/wiki/WTFPL
This is the only total freedom license I am aware of, and allows claiming others work as your own if you wish.
I agree the OP was confused about the word plagiarism, but from his follow up it seems clear he meant not giving acknowledgement, as opposed to falsely taking credit. Regarding non-acknowledgement and non-advertising clause licenses, the zlib is perhaps the most popular and is a really nice license. It has an anti-plagiarism clause that you can't falsely claim it is yours, but you are not required to acknowledge ownership in binary distributions. (It is appreciated but not required.)
http://en.wikipedia.org/wiki/Zlib_license
There is also the anti-copyright notice, which varies in form, but is an explicit public domain grant required by the Berne Convention. Typically they do not require acknowledgment either.
1) you create markov chains using a large number of cookbook texts
2) you create the markov chain for a specific recipe's description and go down alternate high-probability paths in an effort to creatively change the wording without changing the content (maybe this is comparable to the way a human would if he tried the recipe and then wrote down "how he did it")
3) you republish the result
Did you violate copyright or not ?
The reason I ask is that this is often used as an end-run around patents and copyrights. What most speech recognition programs do these days is preprocess the sound + feed into neural network + get output. (and while most "pattern recognition" algorithms for non-visual things seem to have a love affair with support-vector machines, temporal neural networks are certainly advancing there too).
Now if you analyse what those neural networks do there's 2 types of things 1) ~40% effectively is unrolled loops of (mostly) patented algorithms 2) 60% you effectively don't recognize (to be fair it takes hours of seeing the network operate before you realize anything it's doing)
Clearly this is legal, in cases human implementations of the exact same algorithms wouldn't be, nicely sidestepping the problem of patented algorithms. And as a bonus you don't really have to know the subject matter (e.g. you can write a pretty good voice recognizer without 8 years experience as a linguist. Or you can write them for languages you don't actually know). And as a bonus, academics are miles ahead of the private sector where it comes to machine learning algorithms, so extremely useful thing are effectively free-for-all.
Of course this is also what humans do. If you look at neural networks, they can only do what they've "seen" happen before, or they can combine various things they've seen before. But they are utterly incapable of coming up with original work. So I don't think humans are any different to machines when it comes to producing original work based on combinations of previous works. This doesn't mean the thing that was copied was itself copyrighted, you can write about your own life, for example, or about nature, or ... but we'd call that original, when (in a strict mathematical sense) it's not.
So clearly we've de-facto accepted in our society that machine-processed works at some point start constituting original work.
Do we have any data what point that is ?
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software"
And GPL:
You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice;
"Redistribution of source code must retain the above copyright notice ..."
Or how about the Apache license:
"You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work,"
Maybe the MIT license:
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software."
and so forth.
"substantial license"
If you copied a couple of functions for a class the uni would have big problems if you provided no attribution; though the license does not require it.
Now your teachers didn't focus on entrepreneurship because statistically speaking, most people who go through college (or any kind of education) will work for somebody else.
I'd add to this that school is, in most cases, not about learning practical skills. It is about learning how to learn, developing mental tools and acquiring a knowledge foundation that will help you work with others.
Debatable approach to education, maybe. But beware of thinking that everybody want or should be prepared for the career path you seem to be in favor of.
I'm happy with how my career has gone since then, but it would be absolute hubris to declare that it was due to my astounding foresight or careful assessment. I was a) motivated b) lucky and c) relatively free of responsibility.
Maybe I've had a more skewed career than most, but I've spent my career working with complex and busy systems. I never had a "freelance web developer" period. I've never just spat out web app after web app for clients. To take your specific example, I missed out on a chunk of algorithmic complexity in college (which I have since picked up) that sheds light on real world problems that might otherwise seem confusing or unconnected.
I understand your frustration, believe me, but be careful not to mix up the knowledge with the institution, or the message with the messenger, as it were.
- College isn't only CS.
- Pure (computer or not) science isn't 'working for someone'. It's 'learning how to do (computer) science correctly', hopefully.
- Plagiarism is not what you are saying, which is superficial. Citing a paper and using previous work in academia isn't plagiarism, for example. Copying someone else's paper and putting your name on it is. Which IS bad. I can't take a linux distribution and tell the world I wrote it. But I can use it and (depending on the license) sell it. Or make something else with it and add my name on it.
- Performance matters or not depending on the users, obviously. But if you don't know that your algorithms are bad, or if you don't know how to fix them when you hit scaling problems, then what do you do with all your users? Sure, you can hire someone who went to college or learned that somewhere else, but then you'd be supporting the idea that there is no need to be technical to be founders, which is partly true but if google and others taught us something is that the technical founders tend to be able to understand some problems better (and solve them better).
- Learning the concepts behind the list you wrote isn't incompatible with college. If you take some business classes you can learn a lot of it. No one is forcing you not to take those classes or a major in CS and a minor in Economics.
- From college you don't get only the classes, but also the interaction with a lot of smart people, diversity, challenge and many other things. It changes you, hopefully in better.
- Getting excited about being entrepreneurs doesn't always mean the sooner the better. It depends if one is ready. Like with startup ideas, arriving too early may be as bad as arriving late. So, if you quit college for the sake of being an entrepreneur when you are 19 and then you fail, you lost the chance of getting 'more' ready through college.
- Same applies for grad school. You might not need to go to grad school to do anything. But a lot of people change the way they see the world going to grad school, which, if it made you wiser, could be a good quality to have when founding a startup (plus the extra knowledge).
All this to say that if you think that you can say "all this does is this" I think you might want to rethink a little bit, since it's rare that such absolutists ideas about things so controversial are ever correct.
I hear this a lot (frequently even about passing on college for lucrative, if short-term, opportunities), but I don't get it. This isn't amateur athletics where you have to worry about losing your eligibility and wouldn't be able to get in without an athletic scholarship. You could easily go back to college at age 21 after a year or two of trying to start a business.
Of course you certainly learn a lot by starting a company, it's a matter of making sure you are choosing that over college for the right reasons, and not 'only' because you feel like you will be the next twitter in a year, which most likely won't happen.
I think that there might be a more natural order in going to school first, then starting a business. But it's not necessarily the unique or the right way. It's what I think.
Ultimately it depends on the person. It's just hard to judge well about college when you haven't really gone through college, and I think that starting too early could be worse than starting a couple of years later. Just my opinion.
It's not like there won't be any opportunities after college. So I just feel that I would expect a strong reason to feel like I can't wait anymore. But if the reason is that one thinks that in college you don't learn anything but working for someone, then I think that's the wrong reason. That's all.
Of course this isn't true of all schools, but I can't say for certain I know anyone who came out of college more prepared for the world and business than they went in. More prepared for a job, surely.
College is a place to gain knowledge from those that have more than you. If you see it as anything else (especially anything malicious) then you're looking at it from the wrong angle and coming in with the wrong attitude. A motivated person can gain a lot of insight and knowledge from even the shittiest of situations.
College classes are a completely valid way to learn things. If you think that you're entrepreneurial dreams will be fulfilled if you drop out, then go for it. Some people don't learn that way, and that's just as acceptable. There are problems with higher education, and some places more so than others. But don't be so vain as to denounce the entire institution of higher education from a single anecdotal data point.
I'm assuming this meant in the sense of "why can't I just copy a binary tree implementation from the internet and turn it in", since every advanced course I took in college encouraged the use of libraries where appropriate (to the point of linking to open source libraries on the course website). The answer to the former question should be painfully obvious... you're learning to be a creator of things, not a user of things. That would be like taking an operating systems course and saying, "See, I downloaded Windows! Where is my A?"
2. Performance Matters
Tell this to Digg (one small example in a sea of them). Kevin Rose has said several times that he regretted hiring so many "get things done" PHP programmers that had no in-depth algorithm knowledge because as soon as the site had to scale none of them had knowledge outside of their PHP sandbox.
As far as the difference between copyright, trademark, and patents, ABET requires a Capstone/'Ethics' course that includes these very topics. I actually did a research report on software patents during my undergrad which included a presentation on how software patents have affected the software industry. As far as planning a product and tracking its development, ABET also requires an 'Intro to Software Engineering' course which is, you guessed it, planning and building a product from first principles.
I care about the law, and what I can and can't sell without being able to win the lawsuit when I'm sued.
I've never had to build an operating system, and I never will. Performance problems likely mean you have product success, at which point you can figure out solutions to your problem.
You don't get facebook scale by planning it up front.
I've never had to build a priority queue. The language I've used has always had a library to provide that functionality for the purposes I needed. However, knowing what a priority queue is, how it works, and when it is appropriate to use (and those pesky big O performance implications) were all taught in an algorithms course (and are a quick CLRS reference away).
On performance problems, that is an incredibly hand wavy response. You seem to be assuming product success is a $50 million Series A round and enough buzz to make people want to work for you. And what are you going to do with that money? Probably hire someone who has an understanding of algorithms and operating systems.
My school is very small, and our department is even smaller. We have very few students pass through our department each year (around 3), but we're pushed to be our own innovator in the world. While a lot of our schooling does involve how to work within a company, we learn just as much about being independent.
I'm certain there are outliers to what I wrote, but I feel the majority of schools are just creating employees, and that's....sad.
But to be perfectly clear, the best thing I could ever ask for is the ability to see my professors work live. One of my professors was a high-up manager for a very large insurance company, and the other was a good friend of Edsger Dijkstra, among others. One is an immense source of advice in practical software engineering, and the other can usually teach me a pattern to solve a problem in ten-times less code and more efficiently.
And, due to the small size of my school, my semester-ly tuition is less than $2k. It might not look like much on a resume, but I've hit the jackpot of schools.
Would love to hear more about entrepreneurs who live on the edge and try to start a business while also needing to make rent and student loan payments.
I'm 29 now, have worked full time until I was 26, and started my own web development firm at 27 (hired my first two full time employees in 2012).
I'm a few months away from being done with school, and I can honestly say it has been the most worthless investment in my life. Everything I have learned in my positions as a IT Admin to Dev has been on the job.
School has just been a lot of wasted time doing fill in the blank work that I could have spent learning things or bettering my business.
If you want to go to college to learn to be an entrepreneur, get a degree in entrepreneurship. Colleges should teach the core competencies of your degree that can then be applied in any number of ways.
[Edited for spelling]
I'm a senior a very theoretical university and my friends in the CS department often complain:
- "Why should I learn all these sort algorithms? Let some grey beard figure out which one is best for me and wrap it up in sort()"
- "Why do I have to take all these required classes? Why do I have to do a semester of foreign language or a physic pre-requisite?"
- "Why do I have make an entire operating system in this class? When in the real world would I ever need that?" etc.
Bullshit! It's good to be "T" shaped - studying a very technical area like honest-to-god computer science trains you to dive deep, to be able to confront a problem and approach it analytically. All the prerequisites have given you a stepping stone into understanding, or at least appreciating, other areas. These are very useful skills to have and they certainly make you a more interesting person.
Sure, there are plenty things left out that would be useful for entrepreneurship. Half of my friends in the CS department haven't taken the initiative to learn "real world" development yet with all the shiny tools and most (myself included) have no idea what it takes to run a business. But to say college only "prepares you for the life of a corporate stooge" is a mistake.
At one time I was extremely dissatisfied with my college's cookie cutter curriculum. But I realized that this setup is built to get you in the job market. It was up to me to do the extras.
The vast majority of my professors were genuinely interested in developing their students as independent thinkers capable of much more than corporate drudgery.
Perhaps the business-end of the university is focused on getting you into the job market (since that's how many people want to evaluate their college experience and investment and hey, somebody's gotta pay the bills). But if you are in a more academically inclined program, I think you'll find that the pursuit of knowledge and a joy of learning is what matters most.
I attended Emerson College where most of the degrees are in the arts and communications and everything there was focused on not becoming a corporate stooge but often an entrepreneur.
Most work was project based often with the idea that your work would help to build your portfolio. Most importantly, your work outside of the classroom working on films, recording bands, writing marketing campaigns with clubs or on your own was just as much of the curriculum, possibly more so. I learned that only a small percentage of knowledge was coming from my professor at the front of the room but from the people around me and the work I was doing on my own. If I didn't take that "work outside of the work" attitude from college I think I would have had are a hard time getting motivated to learn to program and do other ventures like doing freelance work or working on passion projects on my own.
Sorry but college is what you make it.
http://www.overcomingbias.com/2010/08/school-isnt-about-lear...
5. The way I have done this is by a landing page to gauge interest and by getting a handful of customers willing to buy in a recurring fashion as a starting base before significant monetary investment on my part.
7. Get a partner in equity early and outsource or automate everything possible before hiring employees. Hire when the cost of failing to get the right employee will not harm you financially.
9. If none of the directions are obviously better or have data to show why they are better, find a way to get the data to show you which direction is best.
Just my 2 cents.
I certainly have friends who are learning to "be a cog in a wheel" but that's not at all the only possible outcome of a college education. Insinuating otherwise is questionable at best and incredibly misleading at worst.
"An Alternative, Practical Education"?
Seriously? You think it's important to know how to answer this bullshit?
Why don't you go the whole bullshit hog and add to the list
11. What's your greatest weakness?