How I got my dream job in the tech industry without a CS degree
billmei.net
billmei.net
The school I taught at, a community college issued associate's degrees in computer programming, is still going strong largely as it was back then. I still don't have an answer to my question, though: why are students paying for that?
How do we fix that? We need somebody to become credentialed (or some institution that already is credentialed) as an institution of higher learning, that will curate a list of online classes (not necessarily their own), provide some way of grading those classes (online testing), and issue a diploma that is recognized by the offline world.
John Bear wrote a few books about the subject that I highly recommend.
Some people presumably don't have a right kind of discipline to study on their own. This is why remote study programs can be a lot more difficult to complete vs. on-site programs.
EDIT: There's a known effect, discussed in the Coursera "Learning How to Learn" course, where you read through the material/watch a video and think that you've actually mastered or learnt it while in fact you have not. If you're aware of this and test your knowledge you can fix that but it's another reason why a structured program with an instructor can have an advantage...
I can only speak for myself but I would not have been self-disciplined enough to complete the courses that I did during my undergraduate CS degree.
The added bonus was the degree allowed me to emigrate fairly easily.
[1] - https://www.timeshighereducation.com/letters/the-open-univer...
> the cost for an equivalent course for a resident of England is £2,786
The OU used to be about giving a chance to education to everybody. This is sad...
It does sadden me to see them struggling with the new fees, I'm not sure I would have done it at the current rates. I certainly wouldn't have taken a loan for it.
(I followed the THES link but didn't find anything about the OU dropout rate at the other end of it.)
I'm also curious about how you feel things like /r/learnprogramming, stackoverflow, and stackoverflow IRC can act as surrogates for teachers.
I've learnt to play the guitar online. I did a couple of music related MOOCs. I use YouTube resources like JustinGuitar and Lick'n'Riff. But I still felt like I needed a real teacher and went and got one. Even though this teacher is probably not at the same level of some of the YouTube "gods" :) I still got a lot out of that.
Automated code checkers are definitely useful but, other than that, I'm not sure I've found MOOCs much different from watching YouTube videos. Nothing wrong with that--especially with top-flight lecturers--but they're hardly revolutionary. Videos of lectures have pretty much been a solved problem since VCRs went mainstream.
SO users demand that your question be "correct". Note, I didn't mean that it should be clear what your problem is, it's just that if you ask a "noob question", for an explanation, or if five people think it can't be done, you'll get down voted and closed in a second.
It's sad because other (smaller) SE sites are quite nice.
I completely disagree. I'm an experienced dev from C++ learning Android/Java dev. Literally 90% of what I need is on SO (the rest usually from mkyong), thanks to google some of the answers even bubble up to the search page so I dont even have to click on them. I would be much worse off without SO.
A lot of people on SO seem to be answering just for points, half the time, or more, they don't actually know what they are talking about all or have experience with what they are explaining; they have often literally just "researched" the question and now they condense a couple of sources into an answer. Without having a proper understanding of the subject.
SO is bad for the whole industry. And there is not much that is worse than a "developer" copying an answer off SO and putting it into a production code base, without even understanding the answer they just copied.
But now? I can take an online course taught by people who actually know how to teach. And if I don't understand something, I can rewind and play the lecture over again. Or I can take it a slower pace. Or most importantly, I can go on YouTube and find other teachers who explain a concept differently. It is highly improbable that any single teacher can explain everything perfectly to everyone so it's quite amazing that one can basically go on YouTube for alternative explanations that make more sense to them.
In fact, if you look at highly rated videos on say, math concepts, you'll find plenty of students who leave comments like, "Wow, you explained this better than my teacher did" or "I wish you were my teacher." Students MAY have the capacity for concepts, but the teachers could also be poor at teaching. How many students actively blame themselves for being 'too stupid' or 'bored' and instead give up because they don't feel empowered by their paid teacher to overcome the knowledge gap?
No doubt there's clear advantages in having an innovator or brilliant person guide you in your studies. And certainly if one were to do a Masters or PhD, having an advisor is essential and invaluable. That said, for a lot undergrads / students, I would be surprised if the majority of them had a strong relationship with their professors/teacher.
I believe that online courses and college should exist out there in the world, as there are advantages to both. But I think because the feedback portion of it so dependent on the quality of the teacher, that it's not a guaranteed advantage.
I needed the structure and social interaction of the college environment. But oddly enough, it depended on what discipline I was studying. I would not have been able to learn math and physics on my own, and those were my majors. On the other hand, I easily taught myself programming and electronics.
A friend whose daughter got an online degree (while at home with a baby, living in a small rural town with no other options) said that the hardest thing about studying online was the sheer boredom of sitting at a computer all day with no one to interact with.
A particular advantage of going to college for me, was that I learned how to teach by observing my professors in a variety of settings, and imitating their methods. Today, a lot of my work is surprisingly similar to teaching: Presenting ideas to people who are not experts, mentoring younger colleagues, etc.
In hindsight, I have this conflict of views sort of. If automation goes the ways in which some fear, then physical institutions will provide a place for people to go instead of rioting out in the streets. To build on Salman Khan's thoughts about online education becoming the Aristotle/Plato model while the physical area acts as a place to build projects and so forth.. this could be one way to go [0]. At the same time, I've read a number of books about the atmosphere of campuses pre-1960s. Personally I feel we protest too much these days. So perhaps a focus on online campuses while limiting fewer people to the physical campuses can allow for the protests to die down and perhaps a return to the pre-1960s era. That said, I have my doubt that people are just going to be content sitting at home in mass learning.. so perhaps Salman Khan's ideal will be what emerges. Then again, it would also be ideal that we don't throw out the old way completely. It would be ideal with some smaller liberal arts colleges could be dead set in their ways in just teaching old liberal arts. Ideally without the computer so to encourage actually reading texts in whole and producing critical thinking. This would be the elite probably due to the cost of that education.
My bias yields to the hope that the majority of all jobs are destroyed by automation and that people having nothing else to do but to get phd's in the subject that they are interested in. Perhaps though the access of education will depend on the level of talent and knowledge; for the masses a khan/coursera style approach, for the mid-level an approach that is a hybrid of khan as Plato model and physical interaction for project development. The upper end, the elite would be in person primarily, small classes in cohesive campuses with lack of protests that disturb the open learning environment; of course moocs would be available to these students but the primary purpose would be more old form to develop better critical thinking skills. The moocs, even if PhD programs are developed will suffer the hive mind problems as one can see in say many social media platforms (reddit, facebook, twitter etc).
[0] A Vanity Fair panel discussion with Salman Khan and Reed Hastings: https://www.youtube.com/watch?v=cnqaenik93A
edit: added youtube link for reference.
With programming and electronics, self-study offers the opportunity to make things, both novel and derivative, and immediately (or near enough) see whether or not the function. Similar to setting up an experiment in a physics lab, but again, who has a home physics lab? Programming can be done on a cheap (< $200) laptop. A large portion of electronics can be accessible with a similar investment in (mostly reusable) parts.
For electronic components, "easy to learn" meant things like designing op amps and logic chips that behaved more like their textbook symbolic representations without weird tricks and pitfalls.
In contrast, you can't change electromagnetics just because you want something that's easier to learn. Nature won't approve. Progress has been made towards explaining it better, for instance, today's notation is simpler than what Maxwell had to grapple with. But such progress comes slowly.
In many universities it does feel like you're basically paying for a very expensive real-life recording of something you could have just watched online. Sure, there are TA office hours, but is waiting in line to talk to a TA for 10 minutes a week worth tens of thousands a year?
IMO we should focus on teaching meta skills as soon as possible, teach people HOW to learn, and then let them be auto-didacts with opportunities to practice their craft and be surrounded by other people struggling to be great at the same skill.
This is obviously not talking about high stakes professions such as surgery, where perhaps the traditional approach is the best we can do until computers can vet our skills.
Won't these people just "drop out" early on in their careers anyway? Someone that can't do any self directed study will not last long in almost any IT role.
This explains a lot of people I've worked it. "Oh I read a tutorial/watched YouTube videos of it, let me do it".
I've learned that I can't say I understand something unless I can explain it to someone else and apply it to solve a practical problem.
Absolutely. Anders Ericcson makes this point very clear in his research and also the book "Peak"
In order to become an expert, you need feedback from other experts. I used to think "well who broke through the field first? who became the first expert?" and to that I say that is how human knowledge works. It's built on top of one another, whether we think about it consciously when trying to learn a new concept in a new field, or we are using it subconsciously in the form of an abstraction.
As an anecdote, my first "real" job after getting my CS degree out of college, I worked at a place for about 2 years. In 1 and a half of those years, I felt like I was barely getting by, not meeting my knowledge goals. Then we decided to get crazy, and try this agile and pair programming thing. I worked under one of the most productive developers we had there at the time for 3 months. 5 years later, I still contest, I learned more in that short 3 months under his guidance than I have in my whole career on my own. I have been searching for that experience again ever since.
I attended Tealeaf Academy, now LaunchSchool, to kick-start my own self learning, and I thought it was an excellent investment. Their model is (or at least was) to provide a structured program, with email & chat support, and a few hours per week of live interaction. I also liked how they framed learning as the entry point to a path which required a lot of learning, and not a "be an employed developer in 90 days." It worked well for me.
Also, I personally can not stomach day after day, year after year, of staring at a monitor with talking heads. I just can't do it. Computers are great, but they are only one element of a learning environment.
Hacker News is a very small slice of proactive individuals, who are what I would consider the exact opposite. A lot of us are constantly trying new things, building new applications, doing whatever to progress. Most of the people that fall into this category, were probably ALREADY programmers, and went to school just to have the special piece of paper. But would do very well without it regardless.
While everyone else is completely content, with going to an office, being told what to do, doing it, coming home, and not doing anything related to computers / software until 830am the next morning. These people went to school to learn to be programmers, so they could get a job, and get paid. That's it.
It's a completely different mentality, and that is why formal education exists. It's the difference between a job, and a passion.
I don't learn very well sitting in a class, and listening to someone yap. I prefer jumping into something, and learning as I go. One project, building upon another.
1. People get stuck. A lot. Especially in the beginning.
Perhaps the biggest difficulty of learning on your own is the "I'm stuck" problem. I learned by hassling people in IRC, but man they were saints and I feel bad for constantly bothering them with my stupid questions. We use Slack to connect the students, and it's a constant flow of people getting stuck and getting help (about 4,000 people in there now).
2. Credentials and requirements have been drilled into students' mind far past a rational level.
I probably get asked 20x/day if we offer a certificate for graduates. I eventually started saying "yes" because so many people would be shaken up if I said "no." I can create a certificate and put your name on it, sure. It's not worth anything, but it's almost a compulsive need people have now.
Along those lines I probably get asked 20x a day if something is "required." I don't understand the mentality of joining a free code bootcamp and asking if something is required, but maybe that's just me.
3. Material isn't the hard part anymore.
I'm sure there are better teachers than us out there, but I'm convinced the number of people who can learn that way are a small fraction of the population. Most people aren't motivated and/or disciplined enough to go through that on their own.
I personally dropped out of college, but if I think back to my Shakespeare class, for example, would I have worked that hard if I were self-educating? Even though I think a lot of the assignments were relatively worthless, there is something about the forcing function of deadlines, social pressure, and working at the same time as peers that really does a lot for human psychology. I can't imagine the other students in any of my classes working that hard to learn anything on their own.
I look at the completion rates of MOOCs and other online programs, and it's tiny. Sure, you might say, some people are just sampling, but I would guess than this doesn't tell the whole story. There's something that's missing from the "here's a book teach yourself" method for most people.
My personal thesis for a high-quality, low-cost education for the masses includes material, but material isn't the point. The point is incentivizing people to do things they normally wouldn't do by "forcing" them to do so somehow.
I haven't decided for myself, and in fact am struggling with this as the parent of two under-achieving daughters :)
Allow me to play Freud here for a moment. Perhaps that question more points to anxieties about not knowing 100% of the material (which, I think we can both agree is ok. nobody retains 100%. But the student may not realize that).
So maybe they ask that question seeking approval, hoping to hear "No, thats an advanced concept for advanced students wanting to learn {special advanced concept}". Obviously thats not the case, but I could see a student asking that to soothe their worries that they understand other things, but not the difficult concept.
I think that credentials and requirements are indeed wanted by many students, but not by all of them. If you already have a degree from a university, and you take some MOOCs for fun, why would you bother with it?
In my case, I have my degree in compsci, but later realised I do have an interest in philosophy as well. Due to working I could not go study the full-time course, but my uni offered me to study philo at my own pace (each semester, just take courses a,b, whatever). Without having a degree at the end of this.
To conclude, I believe some students do MOOCs purely out of interest, and don't attach as much value to the certificate because of that.
What you don't get with an online education is the proximity to other students and professors that facilitate strong relationships.
You didn't put anything into it.
However, the teachers at the school I taught in were almost all very accomplished English speakers. Yes, they had an accent. Yes, they made mistakes. But they were all fluent and proficient to a very high level.
One of the things I asked the teachers was, "How did you get to be fluent in English?" As I expected, not one replied that they became fluent at school. Then I asked, "Where did you learn most of your English?" Again, not one replied that they learned most of their English at school.
In reality, it is impossible to learn English in a classroom. The subject is too big. There are about 1500 common grammar rules in the language, so it is common to ask the students to memorise that grammar. It's achievable in 3-5 years. But you won't get fluency. Neither will you get proficiency with the 20,000 word families that you need to achieve adult level proficiency. In the end you get students who can tell you what a subjunctive clause is (well, they can tell you in Japanese, anyway), but who can't order a drink at MacDonald's.
This is not really a failure of the system because while we can teach fluency, you still won't get students who are proficient to any degree at the end of 3-5 years of classroom study. There just aren't enough hours. The students do not have enough desire or even need to learn the language. Only those who study independently will learn English.... and they would have learned English anyway.
Or would they? At the end of my tenure, I decided to change tracks. Luckily I was given free reign at my school. Instead of teaching English, per se, I taught my students how to learn English on their own. For a 50 minute class I kept my instruction time down to 5 minutes (which was hellishly difficult, I can tell you). The rest of the class was a series of explorations in things like, "If I don't know, how can I find out?", "How do I read a book to get information out of it?", "How do a read a book for pleasure?", "How do I watch TV and understand what's going on?", "How can I improve my pronunciation without paying someone to train me?", etc, etc.
My hope was not that my students could speak English at the end of the class. That was impossible. My hope was that my students would feel, "I can learn English if I want to. I know how to do it." It's now about 5 years since I left teaching and many of my students can speak English very well. Several of them got jobs where speaking English was the key component of their job. I like to think that my classes helped them out, but of course the reality is that the thousands of hours they put in after my course is what taught them English. I hope I was able to nudge them into a place where those thousands of hours were possible for them.
This is really interesting to me. I haven't been an ESL teacher before, but I am trying my hand at being one unofficially one for someone close to me who is trying to reach fluency, but has plateaued at an upper intermediate level. These are all things I am trying to encourage myself, but I have no real idea how.
Is there anything out there on the internet about this, or do you have any pointers?
But very, very basic pointers: Free reading is actually the key. Read whatever you like. Read every day without exception. If the person is learning English, you're in luck because there are thousands and thousands of graded readers. Those are a great place to start.
Research has shown that you need to understand 95% of material before you can learn from context. This is massively important to understand. The advice of "If you don't understand it, skip over it and eventually you will understand" is well meaning, but is especially bad advice for learning a language which does not share a root as your native language. It can work well if you are learning French from English, for instance because the average English speaker knows something like 10,000 French loan words and can generally figure out what things mean from context. If you are going from Chinese to English, for example, you do not have that advantage.
When reading something above your level, scan the text for words that you don't understand. When you get to about 20, enter them into a spaced repetition program like Anki. Memorise them. Then re-read the text. The next day, re-read the text and get 20 new words. The next day, re-read both and get 20 new words. Keep doing this until the text at the beginning is as easy to read as your native language. Then start skipping that part. Every once in a while go back and read earlier chapters, etc.
Once you have read one book all the way through, find another book by the same author. They tend to use the same vocabulary and expressions from one book to another. You will almost certainly be able to read this book for pleasure without the need to look anything up. Switch to a different author for studying, but keep up the pleasure reading. Bootstrapping yourself to the point where you can read for pleasure is really important because it allows you to "study" without undue effort. For some reason, allowing your brain to relax is important for assimilating the information (at least in my experience). All work and no play makes for a person who is not fluent in the language.
As soon as possible, stop using dictionaries that translate from one language to the other. Instead, find a children's dictionary in your target language. Use that in Anki (yes, it's a royal PITA to enter definitions like that in Anki ;-) ). Also, if you wish to learn grammar, purchase a grammar text book for children in the target language and learn it exactly the way school children learn grammar.
For watching TV, keep a pad of paper next to you at all times. Whenever you hear a word you don't know, write it down (as best you can). Look up the words later. Start with children's shows. Watch them exactly like a 3 year old watches TV: "How on earth can you watch that same cartoon 500 times in a row?!?" In the same way as the book, as soon as one episode is as easy to watch as it would be in your native language, you will be able to watch the entire series for pleasure.
If you are very low level and you can't understand anything, use subtitles in your own language and watch for understanding. Once you've watched it a few times and have basically memorised it, watch it again with subtitles in the target language. This makes it easier to pick out phrases to study. Keep going like this.
Of course, it's easy to get bored with this stuff, so feel free to give up on a book/series for a while, or do something else. There really is an infinite amount of stuff to read/watch -- especially in English.
I won't really talk about how to read something to get information. This is really just scanning, but it's kind of an involved topic. I actually taught my students this so that they could game the university entrance exams. However, the main thing here is to get very, very good at question forms. Be able to convert between a question and and answer and back again. Then once you have a question, you should be able to locate the text that answers that question.
In a sibling message I described how to improve pronunciation.
I hope those things will help. One more thing you can do to really help your friend is to invite them to join you in as many normal events as possible. Take them out to the bar. Take them out to picnics. Especially when you have a group of friends going out, bring them along. For a long time they are likely to sit there in a corner and not say anything. It's important to tell them that this is completely OK. It's practically impossible to insert yourself into the conversation at first. Eventually it will happen though. Tell your other friends not to worry about whether the language learning friend is having a good time. Just keep including them on everything. This will help more than anything else you can do.
Find a youtube channel or something else with many, many hours of someone talking in an accent you find pleasant. I use librivox audiobooks for German (free, in many languages). Try and imitate them in sentence sized chunks. This is slow and boring. Listen. Pause. Try and imitate them .
This will work but it's pretty boring. More effective, faster and much more boring is the short text approach. Take a short text and just say it over and over again trying to improve your accent. Listen to the original. Say it yourself. You can read it until you have it memorised, no problem. Record yourself. Compare the original and your latest try. If you keep trying you'll improve very fast.
1) Find some songs in the target language and get the lyrics. Sing along with the music. Have the music coming in on earphones. Once you think you're good at it, record yourself at the same time. Listen to yourself and try to improve.
2) Find some material where you have both audio and written versions of the material. You can often find children's stories on the internet like this. Also some news channels will have both written content with video. Also you can get audio books. Listen to the audio. Then read the material. Once you think you can read the material out loud, try to read the material at the same time as the audio. Try to match pacing and intonation exactly. Once you think you are good at it, do the recording and listening trick.
You can imagine that my Japanese students enjoyed doing karaoke in class :-)
Once that is done, it's over!
How do you get students in fields without easy lab set ups to get lab experience?
CompSci/Software? We can build entire networks with a single script that were managed by dozens of people 10-20 years ago. We have millions of programs and scripts available to us freely through public code hosting providers.
Structure Engineering and Architecture could conceivably simulate a lot of things.
Chemistry? Doing this at home without people qualified for safety is a recipe for disaster. Same for microbiology, medicine, nursing, and psychiatry. Also for many trade skills. You can study a lot, but the practical, hands-on knowledge is essential because it is muscle memory or social practice too.
Colleges could become hubs of hands-on and bespoke learning and trip-taking lectures while the classroom material and tests are sourced elsewhere. I would be completely fine with that evolution because you are right -- there's certain reasons I go into work, but it's not because I can only do my work at my workplace.
I think it is great that the author was able to make this work for their learning style and their goals. Some people require the 'deadline' aspects of turning in assignments getting graded. Others learn best by exploring a topic and experimenting with it to test its limits and to test their understanding. Still more learn best by working with an expert and watching their work and asking questions to understand their process.
None of these are 'best' or 'worst' or even moderately comparable. It can help a person to be more successful if they can identify what environment is most effective for them to learn something and then optimizing around creating that environment.
So to answer your question, the teacher/lecture/lab/homework environment works well for some learners. They can readily exchange money for additional knowledge which they can then turn into more money by applying it to a job.
To be frank, it's also probably in part a social thing.
The other points you make are certainly true. Whether or not you attend the lectures in person you're still in an overall environment that can help learning.
the value of attending college and completing a four-year degree at an accredited university comes from the environment you're ingrained in for that time. The people you meet, the conversations you have and experiences you expose yourself supersedes the raw material in the curriculum.
Don't get me wrong, the stuff in the textbox are important but I think you get your real value from the experiences and the relationships you make with your peers and instructors.
Is it worth going into debt? I'm not sure, I'm Canadian and was able to get a CS degree for 50K (Not that crippling of a debt). For me, it was worth the time and money.
Don't get me wrong, the stuff in the textbox are important but I think you get your real value from the experiences and the relationships you make with your peers and instructors.
This is an extremely romanticised view of university, IMO. Maybe you went to a particularly good one.
I studied computer science. My experience was nothing like that at all. The vast majority of the people I met had no real interest or passion about the subject. They took no interest in anything outside of the course work, and certainly weren't up for any interesting discussions about our field. The motivations seemed to be purely financial - jump through these hoops and get a job.
Not that there's anything wrong with that, but I just hope people considering attending university consider that their experience may match mine. You may walk into a lecture full of shy people, who have divided themselves along ethnic lines, who are not interested in the subject, or stimulating discussion, or being friends, or anything outside their grades. The lecturer will pick up on it and be appropriately unmotivated.
YMMV, but for me it was literally just getting a piece of paper that stopped recruiters and HR deleting my CV. I learned far more chatting in IRC than I did in my courses. I'm 3 years out from university and no longer speak to anyone I met there.
I had a great experience and the people I met really helped me with my success after college.
I'm not saying this is the best or only way, you will get outliers. If you are a betting man, this is a very good strategy and you will be right more than wrong.
A good exemplification of this is in the Big Bang Theory show, where "Dr." Sheldon is obviously superior to any non-doctor around, no matter how badly adjusted he actually is in the real world. The fact that a lot of people believe that Sheldon is a good model to follow is seriously baffling to me.
Actually come to think of it that type of person you describe is perfect for a corporate environment. They want someone that can follow process, not rock the boat, and eventually get something done. Perfect for government too.
Have you watched khan academy videos? Or online lectures in general?
90% of it is complete garbage. You can listen to Sal repeat every sentence 5 times if you really want to, but are you actually learning?
(I think there was an Army joke saying something like "private X is able to work when cornered and closely supervised", or something like that.)
I'm paying for it.
Cause I can get government assisted loans and go full time.
Also I get classmates that I can study together.
The environment of school, at least to me, enable to me to study and concentrate instead at home distracted.
Also I network with tons of people and all but one of my professors is my friend now. I have connection, hook up, network, etc... In fact I getting an internship through one of them working with the gov.
I could study online and continue as a programmer. But I rather go full time.
Also paying for a university via online degree I feel cheated. I want to see my professor face to face during office hours and ask for help and such.
Because it's a LOT better than online courses are at the moment. I've used Coursera/iTunes U/Udemy etc. a lot since they came out and only ever finished a couple of things. Motivation is a big issue. Also very little of the knowledge I gained through it has stuck because it is not very engaging. I recently started University (mature student) and the things I'm learning stick much easier as you are constantly forced to pair with people to debate problems and work as teams to answer questions. This repetition and group debate is invaluable. Despite participating on the forums when doing online courses they don't come close. Previously, as a self-taught programmer I couldn't see the value in 90% of university courses and thought they were going to start struggling thanks to MOOC's. Now, as a student, I can see that they do offer quite a lot of value (by value I mean increasing my knowledge, not salary after degree). They are certainly very inefficient, but I would certainly consider my program value for money (although I am a student in the UK so fees are lower than a lot of places).
Among the things you can get for free online, I think conference talks can be a better value for the time than some of the online classes. They are more self-contained, so you don't have to worry about finishing an entire course, and generally more focused on real-world use cases.
I've also found that browsing at random, and watching things that sound interesting works well for increasing what I remember. I'm currently building a search engine around this idea-
https://www.findlectures.com/?p=1&class1=Technology&type1=Co...
Assessment.
A university standard of assessment is better than anyones standard of self assessment.
I always marveled at the people like this that seemed to do so much more concrete things than me. I leveraged my strength - talking, knowledgeably - and that worked well, but many of my peers got in on their technical ability and work ethic alone.
I haven't written as in-depth a blog post as this guy but I have a couple articles for those interested:
1. Linkedin tips for bootcamp grads http://blog.calebjay.com/2016/11/14/how-to-use-linkedin-as-a...
2. Jobsearch tips for bootcamp grads http://blog.calebjay.com/2016/10/18/how-this-coding-bootcamp...
This makes me think maybe I should put together a more holistic article on the entire process.
EDIT: I'll be watching this for a while if anybody has questions on the bootcamp experience, resulting jobsearch, etc.
I'm CS undergrad(almost half-way), but by job requirements none of my skills are even close to being employable. I guess I should start Js
If you don't mind sharing, What topics/frameworks did you learn in that time and if not the same, what frameworks/skillets are mostly used day-to-day?
We focused on:
Javascript
Node
Express, and building a server/routing
HTML
CSS
Angular
React
Backbone
MVC client-side
Security and XSS basics
Auth basics (I wish they had focused on this more)
Basic algorithms and data structures (your binary search trees and whatnot)
Interview Prep
SCRUM stuff (couple group projects)
Git
Deployment (mostly heroku)
To condense it down, I'd say you should be able to, upon graduation: Build from scratch a functioning web application, with a backend that you wrote, that is accessible via the internet one way or the other. You should definitely have some projects published by the time you graduate, because you'll be going up against bootcamp grads with 2-3, or more, demonstrable projects. A big sell the bootcamps go on is that their grads are actually more "job-ready" than someone fresh out of a CS program, the perception being the CS person will have a spotty knowledge of actual hands on programming and deployment. Obviously your program results may vary, but just be aware that's the perception bootcamps and their grads are exfiltrating into the tech community, so it'd be a very bad idea to fall on that radar.
EDIT: I'm remembering now that a lot of CS applicants to my bootcamp would have projects on github, but would need to be pulled down and compiled to actually work (python projects and whatnot). If you end up with a lot of these from your classes, see if you can use that language's server systems to set up a simple API, with a very basic front-end, that allows interaction via the internet. Being able to, in a job fair, literally pull a project up on my phone and show it to a company rep was a very powerful tool.
I would say that the reason it seems crazy isn't rational, however. If I was forced to break down the reasons that this worked, I would condense it to three:
1. I focused entirely upon a single skill that is highly desired right now (Javascript / Web Development in JS/HTML/CSS/JS Frameworks). I didn't "waste" any time learning other programming languages, systems designs, or even anything beyond the most basic of algorithms and algorithm design. These things are not necessary to build webapps in Angular/Backbone/React/Vanilla. My bootcamp (hack reactor) assisted with a very focused curriculum.
2. I was able to condense this learning to a short period of time by being utterly focused on it and nothing else, all day, every day. I was learning the one skill I needed to be employable from 8a-9p Mon-Sat for 3 months, and then 8a-5p Mon-Fri for another 3 months (when I was a TA).
3. I am a highly sales-trained ex-recruiter, and know through experience and training exactly what I need to do to get a job, fast. This includes being an annoying little bastard ;) but also includes streamlining my processes (never spending more than 10 minutes on a single application, etc) and being very good at turning a "no" into a "oh, ok, let's talk more."
Honestly wish there was a 3 month bootcamp for this.
Best advice I can give is treat every "no" like a probe from the other side to learn more. They're not saying no, they're saying "I don't know enough about this to want it." Obviously use common sense to avoid harassing someone, and don't waste your time where no opportunity exists (Mark Cuban reacted to the infamous "sell me your pen question" with "Do you need a pen? No? Ok, have a nice day.")
So every "no" has a response -
1. "No, you don't have enough experience."
Response: "I understand that this role requires the right experience. I applied to the job because I'm confident I have the experience you need. What about my background makes you feel otherwise? Do you have a coding challenge I can complete to demonstrate my ability?"
2. "No, we've had issues with bootcamp grads in the past. "
Response: "Hm, I can understand why having an experience like that would make you wary about bootcamp graduates. Was there something specific about why that grad didn't deliver? (choose response based on further information gathered, then: ) Hm, that does sound challenging. I think that my x y or z demonstrates why that issue wouldn't arise with me / I would love to demonstrate via a code challenge why I wouldn't x y z / If you go to myproject.calebjay.com you can see that I have quite a bit of hands-on experience with x y or z, so I'm confident that a b c wouldn't be an issue.
I'm remembering now an old sales training "no" breakdown:
1. Acknowledge the concern. Make the client feel that their concerns are valid, do not challenge or attack them, but at the same time avoid perfectly validating their belief that this is a harbringer that all similar solutions warrant "nos." So: "Yea, it is quite frustrating when recruiters send candidates that aren't even close to a good fit. You should see some of the resumes we people send to us when we open a job!" === good. "Oh man recruiters are so annoying, yea I would definitely never use them" === bad (when you're a recruiter trying to sell your services. Also, "psh, recruiters never act that way, you must have done something to annoy them" === bad.
2. Information gather. Always good all the time anyway. Usually the first "no" gives very little information and you could make some bad assumptions. "We've had bad experience with recruiters in the past" tells you literally nothing. The answer they give you can lead you straight into one of the fifty sells your company has drilled into your head. "What happened with the previous agencies?" "Well, they were sending bad resumes." --> "Oh, we get some hilariously off resumes. We like to think of ourselves as a filter for our clients, so we get maybe fifty resumes for a posting which allows us to hand-pick the best 3 for our clients." "Well, they would have three or four recruiters constantly calling us." "That is frustrating, we decided two years ago to only allow a single recruiter point of contact for our company because of that exact feedback from our clients." Etc.
3. Close. Of course.
Please, no.
Attitude and approach is far more important than knowledge. The latter can be gained in many ways. The former comes from childhood and, generally speaking, is hard to reprogram.
The fact that you can make more money making webpages than teaching some poor kid english is mostly sad.
You're right in a sense; things that matter the most seem to pay the least. Teachers shape our kids tremendously and yet it's common they need donations just to buy simple school supplies.
Now I'm not sure it's fair to necessarily compare the two but it is still sad.
And that's ok, and you don't need to do that, but please do not assume that people who actually do such things do them out of desperation for money.
Not saying it's the best model for all societies, but it's assuredly not without it's charms for all parties involved. Different flow.
At 5 years short of 40, doesn't sound half-bad if you cut out both the teaching and the bars =) there's gotta be worse "traps" than Taiwan, it's a comely-enough place, and one of the few capital cities in the region where cycling is as conveniently practical as it is in Western capitals
Also I have yet to interview at a tech company out here that actually cares at all about my degree. Might as well not even put it on my resume at this point and it's only a 2 year degree. Many of the devs I know have similar experiences.
Edit: I do get to work remotely though, and the salary is in UK terms
Depends on the area. In the Bay area it's not uncommon to start at a job as a junior for around $100k. Living expenses really push this up. In the MD / DC / VA area, in my experience, juniors can start at most tech / consulting companies at $65k or higher.
So when I started working in finance the ball dropped that I actually wanted to be a programmer.
Well trying to become a software developer with no relevant qualifications and only a grade 6 award for programming in Pascal is difficult, especially when you are located in South Africa.
Luckily I worked for a fortune 500 company that would do anything to reduce employee turnover except pay a decent wage. So I leveraged off that and got them to move me horizontally into more and more technical roles automating what I could and just getting involved in as many technical things as possible.
(Come to think of it, I've worked with a dev at one of the big 4 banks who didn't even have a matric / grade 12. There may have been some protectionism in the initial hiring, but nobody batted an eyelid after that since he was a very good developer.)
I remember doing stuff like this. I had a Geocities account back in the day as well as one on a number of other providers like Angelfire, etc.
One of the simplest hacks was to just leave an opening <noscript> tag at the bottom of your markup. Since the ad code and scripts were appended to the bottom of the page markup, they would never execute or show up. One of the free hosting providers started fighting back by putting a bunch of </noscript></noscript></noscript> tags in a row right before their ad code started. Savvy developers of course responded by placing even more opening <noscript><noscript><noscript> tags. I forget which provider it was, but those were some good times to be a rebellious teenage coder. :)
But in the end find out he doesn't work at Google.
In any case, I meet people on the regular working at top tech companies without a STEM degree, some without any degree at all. The stories are all pretty similar:
1) Teach themselves programming
2) Make lots of actual software
1) tinker with computers as a kid
2) go to university and study something I wanted to learn about, randomly learning C in passing (from a friend and a stolen copy of turbo c) because I was interested
3) get a job at a small local ISV, qualified by having a degree in anything and knowing how to write simple code
4) spend 4 years as an apprentice (informally) taking every opportunity to learn
5) get a job at a startup
6) join Microsoft through acquisition
7) ...
Up until step 6, my resume probably didn't look that interesting, but once you have one of the household name software companies on your resume the rest becomes irrelevant
1) Tinker with computers as a kid
2) Go to University to study something I wanted to learn (Biochemistry) - took CS101 to learn some programming
3) Go to grad school for something else unrelated (economics)
4) Work in something unrelated
5) Learn programming in spare time.
6) Quit job. Learn programming hardcore. Enroll in CS classes at a University to become eligible for internships.
7) Land an internship at Google.
After that, it was smooth sailing.
Do you mean if I tried to enter the industry in my 40's it would have been much harder? Or now that I'm in the industry, the smooth sailing will eventually get rougher as I approach my 40s? If the latter, I don't really believe it...
Also, I think plateauing is fine.... Why do I need to move upwards when they're paying me plenty already?
Bill, if you're reading this and would like to collaborate together on any side projects at some point, just shoot me an email (it's on my profile).
P.S. If anyone wants to read another story about non-CS-majors transitioning into the SW industry, here's mine: http://www.thecaucus.net/#/content/caucus/tech_blog/107
I just wish I could be 10% as productive as he is in this story. It's really incredible, and there doesn't seem to be a "magic sauce" to it, other than the obvious dogged persistence.
> Instead of emailing as many black holes as possible, I would spend a week deeply researching a company and the business problems it faced, then put together a working prototype that I would cold-email to the CEO as a product improvement. ... My strategy was working!
Really? Interesting, let's see the outcome.
> I made my cold-emails insanely customized: for the language-learning company Duolingo I sent them a video of me speaking four languages.
Seems like it's not really working, Bill.
> Getting attention is only the first step. The next step is to interview.
.... right. So OP wasted a lot of time on something that yielded the same result as spam (applying to every job).
> I met Aline in San Francisco and she remains to this day the best recruiter I’ve ever worked with.
Ok, so it seems those weeks spent deeply researching companies were a huge waste. Ouch. But at least the recruiter helped you get a job, right?
> Not only did she personally introduce me to companies, she helped me recognize that the recruiting practices of top Silicon Valley companies are largely based on superstition. This meant that if I wanted to interview well, I had to put in an unreasonable amount of practice.
Oh, so still no job. Tell me you found a way to avoid the bullshit interview preparation and used your time to improve the skills you'd actually be using in your job.
> I bought all the popular technical interviewing guidebooks and read them cover-to-cover.
Huh, dived head first into that one... might've just gone and gotten yourself a CS degree then.
> At the same time, I continued to scour Hacker News and AngelList for companies with open positions, and continued to cold-email CEOs.
In for a penny, in for a pound.
> I also signed up for Hired which ended up having the best response rate—their platform is where I eventually found my current job.
... so why'd you put all that effort into making personalized emails for companies? Ugh.
> In the end, after hundreds of awkward sales calls, hundreds of rejections, and thousands of hours coding, I was able to choose a company that best aligned with my personal values. I’m now working at FutureAdvisor.
Ok... never heard of them, but I do like the rose-tinted glasses. Not sure what Bill's secret for being positive is, but it seems to be working for him.
"At the same time, my old clients started referring me to other clients and everything snowballed into a big, unstoppable avalanche of steady consulting work. I took this as a clear sign that I found my calling in life.
Now that I was confident with the flow of consulting work, I began looking for a full-time job."
What?! Why are you going to look for a job after finding your calling with an overflow of consulting business?
Then again, I think every programmer needs to work with people better than them for a few years.
Most of the worst code I've seen is from programmers who have always been one-man bands, or have been a one-man band for a very long time. It's often a case of not knowing what you don't know.
I guess the downside is that's the advice freely available anywhere advice is given to fresh grads, and so is much less exciting.
I think most of us want some kind of Software Engineering degree which is not what a Computer Science degree is. Most colleges want to teach "Computer Science" as they see it which is basically just "Math with Data Structures and other BS thrown in to make people hirable".
I think at this point what needs to happen is colleges need to stop branding "Computer Science" as something that will get you a job and stick to what they want to do, the hard algorithms and theory stuff and someone else needs to offer a "Software Engineering" course that teaches all the stuff that colleges threw in to make people hireable. If that happened we'd all be more happy.
The only way to make this happen is to stop posting job profiles asking for "Computer Science" unless you acctually need a Computer Scientist (theory-side). You should instead say "Software Engineer or similar" in the posting. Colleges will see this, parents will see this, students will see this and after that all happens we'll all be able to make better choices. Students will find colleges wanting to teach what they are interested, the stuanch theory CS professors will be able to teach at colleges, and employers will actually find programmers who can program after they've graduated from college. Maybe we'd be able to kill off a few major zero days, save a chunk of change in the global economy, or make something cool by making this small change.
I also don't think Software Engineering is as much of a "science" as it is a "trade". Programmers program, painters paint, carpenters carpet.... I mean build. We all have a skilled knowladge and tallent and know how to use that to shape the world around us. Most of the information that must be taught is experiance based and can be given in a trade-school enviroment. I think that's also another way forward.
I also don't think Software Engineering is as much of a "science" as it is a "trade" ... Most of the information that must be taught is experiance based and can be given in a trade-school enviroment
I disagree. Software Engineering is not just about experience. It is not something that a master can pass to his students. It is also about constantly improving yourself and learning new things.At my university, "Data Strctures" is one course where you write no code, another corse that is just about discrete math, and then at your senior year you actually do a Data Structures class.
I have no problem with Data Structures and I of course think they are important. I have a problem with what colleges think Data Structures are, or how they should be taught.
There is a core difference between implementation and theory.
I stayed with IBM for 4 years out of university. In hindsight, I wish I left after two years as it was in those first years I learned the most about how the large operate. The next two years was me getting too comfortable. I could have kept my energy and learning higher by seeking new professional experiences that are not available within an org.
This is the beauty of IT and the core of our industry's success - the experience and thought processes of all the individuals from diverse academic and work experiences combine to make IT a truly multi-dimensional job field.
Same for me. And although I could tell a longer story, the TLDR is "love what you do and the rest will come naturally".
I too managed to get into programming without a degree but for me the path was as simple as convincing an employer (while I was a cold-calling salesman) I could write a better product than the one they were using.
Props to the author and his journey.
Would the author of the article mind sharing their Hired.com preferences? I've been trying Hired.com for 5 months and still receive the same response:
"You have great experience! Unfortunately, at this time we don’t have enough opportunities that match your role and location preferences. We’ve added your name to our waitlist and will be in touch as soon as we’re confident that we can provide you with quality opportunities!"
First of all you don't need a college education to work in software development. I have a Bachelor's, but not in CS and I have known some great developers who have no college at all. I am completely self-taught. You have endless time to learn this stuff on military deployments. Developers, who don't suck, are in crazy demand... particularly if you have web skills and don't suck. I rarely see CS graduates writing original JavaScript applications without large frameworks, for example.
Secondly, it appears his dream job is in the bay area. If you are young and single this might be true. The Y Combinator folks claim it is the place to be to start a company, but for everybody else it is expensive. I can have a larger house in Texas for 20% of the cost and reduced cost of living across the board. That said I see little value in moving to the bay area because I doubt there is a corporate dream job that is going to pay me 5x more to live just as well. I have known several people who have moved from CA to TX just to afford a house (any house).
Finally, there are major differences between development skill and marketing skill (promotions). You can suck at one and rock at the other, but only one of those is going to make a solid first impression and only one will actually define your value after a year of employment.
It's okay to have a job that's just a good day job and let your real passion live outside of it: family, hobbies, volunteering, maybe religious practice if you're so inclined. There is so much more to life than just your career.
"Do a huge volume of work. It is only by going through a volume of work that you’re going to catch up. And the work you’re making will be as good as your ambitions."
- Ira Glass
Yeah well... That doesn't necessarily translate into quality work in the real world now does it? I'll even go as far as saying that that quote in particular is the TLDR of this story.
Also very much related to another discussion where the top n% (the rich) are blamed for just about everything. Here's where I get pounded [1] for daring to say opportunity in the US is what you make of it and the top n% have nothing to do with it.
I am sure there are a thousand people who want to be Bill Mei. Yet few are willing to take the risk and invest the time and effort he did in order to rise well past the average. What's sad is when some choose to blame people like Bill for their own failings.
Want a formula to be rich by the time you retire at, say, 55 years of age?
Work your tail off so that by the time you are 20 you can start to put away $1,000 per month.
In other words, be Bill.
Be frugal.
Invest the money somewhere relatively safe where you can earn at least 7% per year on average. If you pay attention that is not difficult at all in the long term.
Marry well.
Be frugal.
Do this and you'll reach 55 years of age with around two million dollars in the bank.
Continue to do it until you are 65 and you'll have nearly four million.
Or, if you actually start drawing $25,000 a year from your investment at 56 years of age, you will reach nearly $3.4 million by age 65.
It's actually better than that because I compounded interest annually in my calculation.
With the opportunities available today in the US (and other places) almost anyone can work hard for a couple of years and get to the point where they can save $1,000 a month. This is particularly true for a couple. The key is not to burn cash on stupid shit, which can be hard. After a while you make it part of your normal process. I drive a car with over 200,000 miles. I can go out and pay cash for just about any new car in the market today. Waste of money.
Not that hard folks.
I wish they taught kids about finance and money in high school.
I know many people who studied life science subjects like Chemistry or Physics and got jobs in top cs companies. Most of them were self taught(physics dudes use some level of programming )
To be a programmer, you need to have a solid problem-solving skill. Pick up a language(invest money in books in any one programming language, DS and Algo, OOPS) and invest time in websites like hackerrank.
You can easily build anything on the above skills. No matter how well you studied basic database and os stuffs, you will always need a google search before using in real life.
At the time I thought it was pretty poorly taught and I didn't really understand it very well until we covered the same topics in first year of university.
But he has to understand what skill sets him apart. The things that stood out were all the non technical part. He looks like a solid entrepreneur material. Hope he realizes and quit working for others soon.
There is no such thing my friends.
Unless you consider getting laid off or resigning within a few years your dream.
You will never be long-term wealthy or happy with a job. You might get rich, but not wealthy.
Mind your own business.
Speak for yourself, champ. Not everyone's dream is to become rich, or wealthy, or anything of the sort. Some people just want to work on cool problems, be around interesting people, and be paid relatively well to do so.
"Mind your own business" means structuring things simply and in such a way that you get paid more (ie: minimize tax expense... which IS your biggest expense).
Wealth = Time * Health
You basically proved my point with:
"Some people just want to work on cool problems, be around interesting people, and be paid relatively well to do so."
Those things are possible due to time and health.
A job takes the best, sunniest part of the day away from you (usually) and your autonomy (freedom to work on cool problems of Your choosing, being around interesting people of your choosing and when you want to) and then your biggest expense is your taxes.
Wealth as defined by time and health is something we all want. Health is our most precious asset (ie: puts money in our pockets due to intelligence, ability to work) and time is our most valuable resource (can never get more, once it is spent you cannot earn more).
Anyone that does not place Wealth as one of their highest aims is either a complete idiot at worst or grossly misinformed about what Wealth actually means at best.
I'm having trouble figuring out what you could mean by this that isn't some variety of "you know how to make money? Already have a lot of money." What do you mean?
Quick example:
- get paid $S as employee, government takes X% in income tax
- get paid $S as consultant/corporation, government takes Y% in corporate tax
Usually X > Y and you have no ability to write-off your operating expenses as an employee, but can as an incorporated entity (phone plan, fuel, portion of your rent/mortgage, office supplies, etc)
It is about Structuring your life and professional dealings in a way to keep more money in your pocket (and have your money work for You, instead of You working for money).
And emails were cool as well. Way to show how to get your dream job <3
Actually he does not even state that the job he got was a programming job, just that it was his "dream job." But what makes it a dream job?