Ask HN: Your thoughts on returning to college to “refresh” a career?
26 comments
Multiple years is a lot of opportunity cost, and while it is probably tough to get a sci programming aerospace job without at least a CS degree, (a) you might not manage to land a job in such a narrow specialty, and (b) even if you do, you might not earn back the lost wage, especially because you'll be sort of tacitly acknowledging an EXP "reset" and starting from a lower salary rank.
These are obstacles you can overcome if you have a lot of career and negotiation savvy. But the Venn diagram of programmers with that kind of savvy is not encouraging, so you may want to do some personal reflection before investing.
The good news is that if you want to get away from piecework web grunt stuff, you don't need a degree (or even any formal education) to do that. If you apply yourself as seriously as you'd have to in school to practicing serious development, on personal projects, in specialized areas that are interesting to you, have some job market applicability, and involve more hardcore programming, you should be able to get yourself to a place where you can start interviewing for serious dev jobs.
These are obstacles you can overcome if you have a lot of career and negotiation savvy. But the Venn diagram of programmers with that kind of savvy is not encouraging, so you may want to do some personal reflection before investing.
The good news is that if you want to get away from piecework web grunt stuff, you don't need a degree (or even any formal education) to do that. If you apply yourself as seriously as you'd have to in school to practicing serious development, on personal projects, in specialized areas that are interesting to you, have some job market applicability, and involve more hardcore programming, you should be able to get yourself to a place where you can start interviewing for serious dev jobs.
Most CFD guys have aerospace engineering/physics backgrounds, not CS. Trust me, the coding is the EASIEST part of the field. It's almost an afterthought. CFD development, at the level where you are contributing novel work, is applied math. Nothing more, nothing less.
OP, your aspiration is possible but difficult. CFD is a rarefied field of heads-down, highly quantitative minds. If you were outstanding at math in HS then I say go for it. Going back to undergrad isn't a bad idea. You'd be a non-traditional student, but I knew a few of those when I was in undergrad who did well. You should be pretty comfortable in math through vector calculus and linear algebra; if you're really struggling, you might want to reconsider paths. You have to be ready for 3-4 years of hardcore aerospace engineering and math courses, which could be a tough transition. Good luck.
OP, your aspiration is possible but difficult. CFD is a rarefied field of heads-down, highly quantitative minds. If you were outstanding at math in HS then I say go for it. Going back to undergrad isn't a bad idea. You'd be a non-traditional student, but I knew a few of those when I was in undergrad who did well. You should be pretty comfortable in math through vector calculus and linear algebra; if you're really struggling, you might want to reconsider paths. You have to be ready for 3-4 years of hardcore aerospace engineering and math courses, which could be a tough transition. Good luck.
Fluid dynamics is only a part of an aerospace degree, I'm not sure studying materials science, control systems, or air traffic rules would help much in writing a CFD program. A couple of courses in fluid dynamics, one in thermodynamics, and a course like this would get you started: http://www.nptelvideos.in/2012/11/foundation-of-scientific-c...
Engineering Mathematics I and II (Stroud) are really nice self-study books.
Engineering Mathematics I and II (Stroud) are really nice self-study books.
Going into HPC for the aerospace industry is more of a dream job, end game goal than something I'd get into quickly. But generally speaking I'm tired of doing small-scale work and want to become trained and knowledgeable in programming for large-scale systems where performance optimization is crucial. Whatever that entails. I've read short experiences of BS students getting internships at NVidia and that stuff inspires me.
Starting from a entry level salary rank is also actually a non-issue for me. My jobs pay little (I guess it correlates with low-quality experience). An entry-level job at a reputable tech company will probably pay more than most companies have paid me in my entire career. I'm talking $20-$25/hr 1099 contract jobs here. In between I have no work, so it ends up like living paycheck to paycheck.
The main thing that has driven me towards considering the education option is that students get viewed in a different frame of mind by companies. Companies evaluate students and new grads by their potential.
People whose skills have gotten stale or incompatible need training, but training is almost exclusively given to new grads. So that's another plus for returning to school. Right now I have temporary "project burnout" to push on to doing a new project, and think a change of personal experience would be beneficial to me.
Starting from a entry level salary rank is also actually a non-issue for me. My jobs pay little (I guess it correlates with low-quality experience). An entry-level job at a reputable tech company will probably pay more than most companies have paid me in my entire career. I'm talking $20-$25/hr 1099 contract jobs here. In between I have no work, so it ends up like living paycheck to paycheck.
The main thing that has driven me towards considering the education option is that students get viewed in a different frame of mind by companies. Companies evaluate students and new grads by their potential.
People whose skills have gotten stale or incompatible need training, but training is almost exclusively given to new grads. So that's another plus for returning to school. Right now I have temporary "project burnout" to push on to doing a new project, and think a change of personal experience would be beneficial to me.
Why do you want to be in the aerospace industry?
It is a very long, and risky path to get there. Do you just want more challenging work? Do you want to do more math and less coding? You can more easily accomplish these goals.
And in terms of opportunity cost remember just cause you made $20-25 the last few years doesn't mean you will make that much over the next 4 years you would be going to school. And if you are willing to work hard you could be making six figures in two years by staying in web or moving to mobile.
Also your ideas of training in the software world are way off base. I don't know any devs who are any good from training.
For instance I did well getting a CS degree from a reputable state school, all my project and test scores were in the 90s.(UT Austin) But I didn't know how to program my way out of a paper bag. I learned this the hard way, failing spectacularly at my first internship. So I spent the next year working as hard as I could at learning how to develop. It was all self-training and it made a world of difference.
You'll find that all the best devs are voracious auto-didacts. 95% of all learning that happens in software is reading websites, books, and trial and error, not being sat down and trained how to do something. And the 5% who rely on training are usually pretty shitty devs, because you can't grow very quickly as a dev relying on other people to train you. The spoon fed training usually isn't that good, or complete. To be honest I don't know any devs who could even be generously called mediocre who relied on training/teaching to be good.
It is a very long, and risky path to get there. Do you just want more challenging work? Do you want to do more math and less coding? You can more easily accomplish these goals.
And in terms of opportunity cost remember just cause you made $20-25 the last few years doesn't mean you will make that much over the next 4 years you would be going to school. And if you are willing to work hard you could be making six figures in two years by staying in web or moving to mobile.
Also your ideas of training in the software world are way off base. I don't know any devs who are any good from training.
For instance I did well getting a CS degree from a reputable state school, all my project and test scores were in the 90s.(UT Austin) But I didn't know how to program my way out of a paper bag. I learned this the hard way, failing spectacularly at my first internship. So I spent the next year working as hard as I could at learning how to develop. It was all self-training and it made a world of difference.
You'll find that all the best devs are voracious auto-didacts. 95% of all learning that happens in software is reading websites, books, and trial and error, not being sat down and trained how to do something. And the 5% who rely on training are usually pretty shitty devs, because you can't grow very quickly as a dev relying on other people to train you. The spoon fed training usually isn't that good, or complete. To be honest I don't know any devs who could even be generously called mediocre who relied on training/teaching to be good.
Space science is something that greatly interests me and I'd like to get employed in aerospace contributing to space exploration. HFT for fluid simulations is just one example, but there are several other ways I'm open to getting into. Other examples include providing support for processing telemetry data, or embedded programming for the on-board hardware in launch systems.
If I will return to school, I will try to get into a good internship each summer. Many internships already pay higher hourly wages than the $20-25 I have been getting paid.
I am very self-taught myself, but as you can see it hasn't led me to a good career. Being the lone developer is actually a bad thing in the long run, and I learned the hard way that if you're the smartest person in the team, you should move up to a different team or a different company. I learn better by working with someone that can kick my ass at software development most of the time. I don't even know how to write unit tests!
But I'm also talking about the training done at big companies like Google. I expect their sort of infrastructure and resources to be top of the line.
If I will return to school, I will try to get into a good internship each summer. Many internships already pay higher hourly wages than the $20-25 I have been getting paid.
I am very self-taught myself, but as you can see it hasn't led me to a good career. Being the lone developer is actually a bad thing in the long run, and I learned the hard way that if you're the smartest person in the team, you should move up to a different team or a different company. I learn better by working with someone that can kick my ass at software development most of the time. I don't even know how to write unit tests!
But I'm also talking about the training done at big companies like Google. I expect their sort of infrastructure and resources to be top of the line.
This is good advice.
A lot of those scientific programmers have at least a MS in amath or an engineering discipline. PhDs are extremely common for the people writing adaptive meshers for fluids. Plus they are pretty good programmers.
Experience building websites and an undergrad CS degree does not get you that job. In fact, an undergrad CS is (imo) a waste of time. From CS, all you need is programming skills / data structures. You need a graduate level understanding of PDEs and linear algebra to do most fluid work.
A lot of those scientific programmers have at least a MS in amath or an engineering discipline. PhDs are extremely common for the people writing adaptive meshers for fluids. Plus they are pretty good programmers.
Experience building websites and an undergrad CS degree does not get you that job. In fact, an undergrad CS is (imo) a waste of time. From CS, all you need is programming skills / data structures. You need a graduate level understanding of PDEs and linear algebra to do most fluid work.
That shows how much I need to go back to school to understand the different disciplines in the field, as I didn't know most sci-tech programming is reserved for PhD's.
But what if, while you are going for your undergrad CS degree, you get internships from places doing heavy computing? I've read several accounts of undergrad students getting internships at JPL/NASA and NVidia, so it should be possible at least to get interest from these places.
But what if, while you are going for your undergrad CS degree, you get internships from places doing heavy computing? I've read several accounts of undergrad students getting internships at JPL/NASA and NVidia, so it should be possible at least to get interest from these places.
I agree with other commenters that if you want to do aerospace CFD, I wouldn't start with CS (if you want to build compilers, sure).
This conversation makes me think of physics, which I'd consider the liberal arts of scientific degrees.
https://xkcd.com/793/
Perhaps the graduates are annoying, but I think there is an assumption that if you can do physics you can succeed in other areas (which may not be assumed in reverse).
Either way, much of the value of a degree is signaling and there are other ways to signal competence, e.g. open source projects (might be less expensive but harder).
This conversation makes me think of physics, which I'd consider the liberal arts of scientific degrees.
https://xkcd.com/793/
Perhaps the graduates are annoying, but I think there is an assumption that if you can do physics you can succeed in other areas (which may not be assumed in reverse).
Either way, much of the value of a degree is signaling and there are other ways to signal competence, e.g. open source projects (might be less expensive but harder).
Opportunity cost of time is a big one. I personally think it's very dumb that 99% of the time, you must be currently enrolled in college in order to get an internship. On the other hand, I feel like some people do need it despite their experience. There is no age limit to enroll in college, and there is always a ton of stuff that you do not know. There are lots of older people that are dragging their feet, who still need personal mentoring or job training.
Things that you need to master at many job interviews are most fresh in the minds of a recent graduate. Now this is just from reading anecdotes, but people have received more responses from big tech co's as a new graduate than they have after being in several years in the field.
Things that you need to master at many job interviews are most fresh in the minds of a recent graduate. Now this is just from reading anecdotes, but people have received more responses from big tech co's as a new graduate than they have after being in several years in the field.
> As for my goals, it is to work in high-performance computing, in particular with aerospace. My example: adaptive resolution grids for fluid simulations.
If this is what you really want, then just do it!
Research whatever you need to implement a fluid simulation program, stick it up on github and put it on your resume.
Doing so accomplishes several major things
1) it makes it extraordinarily clear to employers that you can actually do the work that you want to do
2) it makes it clear that you can teach yourself to learn whatever else you might need to know to do the job
3) it demonstrates the kind of self-motivation that "reputable tech companies" look for
Alternatively, find a Coursera course on something you're interested in and just do it. You won't get much more out of college than you can from free online courses.
If this is what you really want, then just do it!
Research whatever you need to implement a fluid simulation program, stick it up on github and put it on your resume.
Doing so accomplishes several major things
1) it makes it extraordinarily clear to employers that you can actually do the work that you want to do
2) it makes it clear that you can teach yourself to learn whatever else you might need to know to do the job
3) it demonstrates the kind of self-motivation that "reputable tech companies" look for
Alternatively, find a Coursera course on something you're interested in and just do it. You won't get much more out of college than you can from free online courses.
My recommendation for self-study would be to borrow or purchase a copy of "Fluid Simulation for Computer Graphics" by Robert Bridson. It is by far the most approachable resource on eularian fluid simulation that I have found.
I would warn, however, that it took me a nearly a month to build my fluid simulator[1] after reading. I didn't have any good reference implementations to follow when I built it, and there's a lot of little details to get right. My code still has an annoying bug that appears when building with optimizations on Haswell or later, and I need to clean up the code a little, but it should nevertheless be useful as a reference for the features it implements.
That said, being at a university really does help. There you're surrounded by other people who understand the linear algebra and vector calculus concepts you're working with... or, at least, in grad school you are. Having people you can talk with makes quite a difference when you're confused or unsure about something. It also makes this sort of study feel... normal.
He's also not going to achieve his goal without years of heavy study. Doing this in his off-hours may be fun and rewarding, but I think he's unlikely to successfully reach the point that he's impressing aerospace R&D.
Of course, I'm not sure an undergraduate degree in CS is really going to do it, either. A graduate degree maybe, but I'm not sure it would be easy to skip undergrad. If not, an undergrad degree in physics or mathematics might be a better complement to his existing experience.
Others have pointed out that the opportunity cost for going back to school is tremendous. They're right. For a basic estimate of the cost, he can multiply his current earnings by at least four. It's probably enough to buy a house, but that's what dreams cost.
Is it worth it? Well, financially no. The satisfaction from achieving that dream might be, though. That's up to him.
[1]: https://github.com/cgmb/euler/blob/master/README.md
I would warn, however, that it took me a nearly a month to build my fluid simulator[1] after reading. I didn't have any good reference implementations to follow when I built it, and there's a lot of little details to get right. My code still has an annoying bug that appears when building with optimizations on Haswell or later, and I need to clean up the code a little, but it should nevertheless be useful as a reference for the features it implements.
That said, being at a university really does help. There you're surrounded by other people who understand the linear algebra and vector calculus concepts you're working with... or, at least, in grad school you are. Having people you can talk with makes quite a difference when you're confused or unsure about something. It also makes this sort of study feel... normal.
He's also not going to achieve his goal without years of heavy study. Doing this in his off-hours may be fun and rewarding, but I think he's unlikely to successfully reach the point that he's impressing aerospace R&D.
Of course, I'm not sure an undergraduate degree in CS is really going to do it, either. A graduate degree maybe, but I'm not sure it would be easy to skip undergrad. If not, an undergrad degree in physics or mathematics might be a better complement to his existing experience.
Others have pointed out that the opportunity cost for going back to school is tremendous. They're right. For a basic estimate of the cost, he can multiply his current earnings by at least four. It's probably enough to buy a house, but that's what dreams cost.
Is it worth it? Well, financially no. The satisfaction from achieving that dream might be, though. That's up to him.
[1]: https://github.com/cgmb/euler/blob/master/README.md
The Coursera recommendation is spot on. MIT Open Courseware would be worth looking into as well. Studying a few mathematics and programming courses would put OP in a much better position to determine the next steps.
I finished a comp sci degree with a major in computational mathematics and I don't feel like I could accomplish very much with my bachelor level skillset in an industrial context. I didn't learn enough mathematics in 1-2 years to be a good applied mathematician.
I wish I did a mathematics degree in hindsight!
I finished a comp sci degree with a major in computational mathematics and I don't feel like I could accomplish very much with my bachelor level skillset in an industrial context. I didn't learn enough mathematics in 1-2 years to be a good applied mathematician.
I wish I did a mathematics degree in hindsight!
I second this so long as s/he’s willing to invest the time to learn any required math. I’m thinking a self learner needs to signal some deeper understanding somewhere.
Software really does lend itself to self learners though.
Software really does lend itself to self learners though.
I am in college right now, and after one year I and a friend got summer internships. I made $43 per hour and my friend got just under $8000 per month plus heath insurance, which was nice because she is on Medicaid. I was surprised I got an internship because my grades aren't the best, but I did apply to a lot of places. This was after freshman year of college, so neither of us had taken more than five CS classes, in total, in our whole lives. Neither of us had any programming experience before coming to college.
Over that summer we were both able to pay off our first years worth of student loans for the tuition that finaid didn't cover. A different friend of mine took last semester off to work at Apple, and got free housing right by the new spaceship campus thing.
There are a ton of recruiting events on campus, and the place I worked over that summer offered to hire me part time over the year. Obviously life isn't all about internships, but being able to pay tuition and send money home is a giant plus. People say college is lame, but I think if you can get in somewhere decent or even not that great it would be a good choice. I also know a ton of transfer students from community college who are in their mid to late twenties and less commonly in their thirties. You could always just apply to some places and see how that goes before making a final decision.
One other thing is that I am taking a lot more math than I thought I would have to when I came in as a freshman, so just make sure you like math.
Over that summer we were both able to pay off our first years worth of student loans for the tuition that finaid didn't cover. A different friend of mine took last semester off to work at Apple, and got free housing right by the new spaceship campus thing.
There are a ton of recruiting events on campus, and the place I worked over that summer offered to hire me part time over the year. Obviously life isn't all about internships, but being able to pay tuition and send money home is a giant plus. People say college is lame, but I think if you can get in somewhere decent or even not that great it would be a good choice. I also know a ton of transfer students from community college who are in their mid to late twenties and less commonly in their thirties. You could always just apply to some places and see how that goes before making a final decision.
One other thing is that I am taking a lot more math than I thought I would have to when I came in as a freshman, so just make sure you like math.
That is pretty good. I have never made that much money in my life and I have 10 years software experience. So my self-taught nature has its limits. I see a few people here telling me to consider the loans, but developers with a BS in Comp. Sci tend to earn more than most other graduates (on average) right out of college. At least for now, it is one of the most bang-for-the-buck majors.
My goal is to get into a good internship each summer. I'm looking to emphasize in math as well as I took some CS coursework previously (OOP and discrete structures) but it was not enough to even minor in it.
My goal is to get into a good internship each summer. I'm looking to emphasize in math as well as I took some CS coursework previously (OOP and discrete structures) but it was not enough to even minor in it.
What was your previous degree and work experience if you are willing to disclose?
I'm in this now. Usually for web development I would argue that returning to school will be an ineffective way to join the market. High performance computing and aerospace will likely require a return to school.
A few things to note. Not all graduate schools require a undergraduate degree in a supporting field, nor GREs. Its worth considering graduate school over a undergraduate degree in computer science. A graduate degree will support your current goals better.
If you return to school, consider being part time student and working for your department in your remaining time to ramp up your skills. Most universities don't pay much, but are more than happy to work with fresh meat. additionally the more students you interact with in a technical setting the faster your network will grow.
growing your network can also be accomplished by other means. I suggest meetup groups if they exist in your area. If your Meetups support talks, be sure to sign up for some. The other choice is open source contributions, which is much more work but grows your skills in remote work and enables you to take similar contracts.
A few things to note. Not all graduate schools require a undergraduate degree in a supporting field, nor GREs. Its worth considering graduate school over a undergraduate degree in computer science. A graduate degree will support your current goals better.
If you return to school, consider being part time student and working for your department in your remaining time to ramp up your skills. Most universities don't pay much, but are more than happy to work with fresh meat. additionally the more students you interact with in a technical setting the faster your network will grow.
growing your network can also be accomplished by other means. I suggest meetup groups if they exist in your area. If your Meetups support talks, be sure to sign up for some. The other choice is open source contributions, which is much more work but grows your skills in remote work and enables you to take similar contracts.
I admire your goals, but my advice is to double down on getting to the the next level career-wise as a web developer. Don't throw the skills you have under the bus in pursuit of skills you think you need.
The sort of community and connections you imagine academia providing you is actually already available. Pick a project or framework or ecosystem and contribute, a lot. Build and share projects that other people, esp. developers, can find useful. I think this will grow your network in more quantifiable ways than would competiting with 22-year-olds for internships.
But ultimately, just follow through and your passion will get noticed. I'm not suggesting the college route would not work. But I went to grad school (non-stem program) with a couple 30-something students who hoped being back at university would light a fire under their asses and resuscitate their careers and it did not.
Don't stop dreaming big, but start building your career today, building on your current foundation. Best of luck.
The sort of community and connections you imagine academia providing you is actually already available. Pick a project or framework or ecosystem and contribute, a lot. Build and share projects that other people, esp. developers, can find useful. I think this will grow your network in more quantifiable ways than would competiting with 22-year-olds for internships.
But ultimately, just follow through and your passion will get noticed. I'm not suggesting the college route would not work. But I went to grad school (non-stem program) with a couple 30-something students who hoped being back at university would light a fire under their asses and resuscitate their careers and it did not.
Don't stop dreaming big, but start building your career today, building on your current foundation. Best of luck.
In short, what are you working on in your side time to move this forward?
College can be an expensive (time and money) way to do something you can do with other resources, unless the credentials are required for that career/field.
In software work, I have personally found that my side projects teach me the skills I in turn use to sell solutions to clients.
So as long as I put myself to learning that which I want to work on, I make ground, slowly getting paid ever larger amounts to work in the field I targeted. In your case, HP computing, probable heavy math ability?
As my talent grows, I spend less time on CRUD-type stuff and more on my chosen pursuit.
And in my experience, people who _do_ have more value than people who know but do not do...
And I personally favor hiring someone I can teach the specific skills to, if they already have the proven background of "getting things done" (Spolsky reference).
College can be an expensive (time and money) way to do something you can do with other resources, unless the credentials are required for that career/field.
In software work, I have personally found that my side projects teach me the skills I in turn use to sell solutions to clients.
So as long as I put myself to learning that which I want to work on, I make ground, slowly getting paid ever larger amounts to work in the field I targeted. In your case, HP computing, probable heavy math ability?
As my talent grows, I spend less time on CRUD-type stuff and more on my chosen pursuit.
And in my experience, people who _do_ have more value than people who know but do not do...
And I personally favor hiring someone I can teach the specific skills to, if they already have the proven background of "getting things done" (Spolsky reference).
What your asking is pretty much what I did. at 28 I was tired of my civil engineering work. I started taking grad classes interned at IBM. I ended up getting a masters in CS. I was at a start up in my last year of grad school that ran out of money, so when the chance came up to work on a radar project that had 6 years of funding, I did that. The internships that a school can help you get is probably the biggest help. I ended up working on operating system stuff for my first post grad school job, so those classes were very useful. Now I'm leaning on my database and algorithms classes for my work. Big companies like the degree.
Go for it.
Go for it.
> My professional network is also weak. Nobody I know is looking to hire software developers. I think my reputation works against applying to large companies.
Being honest, I don't know if the degree itself is going to help you. What's going to help you is the networking and getting real-world experience. Perhaps going back to college might help with that, but I also think you could equally get it elsewhere.
When you submit your resume to a large tech company on their job site the chances of it getting to a hiring manager are exceptionally slim. If you actually know the hiring manager - or know somebody who knows the hiring manager - your chances are exponentially higher.
If your background is non-traditional the absolute best thing you can do is seek out and network with other engineers, many of whom will be more than happy to help mentor and provide references for you.
> and see myself as a mediocre developer. So what are your thoughts about returning to college and doing it "the proper way"?
A CS degree doesn't qualify you as a good developer, in the same way that my film degree doesn't qualify me as a good film-maker. I must have done several hundred interviews when I was working at Apple, and I don't think I really paid attention to the candidate's major at all: it was never a good indicator of performance.
I can't tell you whether going back to school for a CS degree is or isn't the right decision: what I can tell you is that if you do go back you should absolutely concentrate on networking, building connections, and getting as much practical dev experience as possible. All of these will be far more valuable to you when it comes to getting a job than the academic content of the degree itself.
Being honest, I don't know if the degree itself is going to help you. What's going to help you is the networking and getting real-world experience. Perhaps going back to college might help with that, but I also think you could equally get it elsewhere.
When you submit your resume to a large tech company on their job site the chances of it getting to a hiring manager are exceptionally slim. If you actually know the hiring manager - or know somebody who knows the hiring manager - your chances are exponentially higher.
If your background is non-traditional the absolute best thing you can do is seek out and network with other engineers, many of whom will be more than happy to help mentor and provide references for you.
> and see myself as a mediocre developer. So what are your thoughts about returning to college and doing it "the proper way"?
A CS degree doesn't qualify you as a good developer, in the same way that my film degree doesn't qualify me as a good film-maker. I must have done several hundred interviews when I was working at Apple, and I don't think I really paid attention to the candidate's major at all: it was never a good indicator of performance.
I can't tell you whether going back to school for a CS degree is or isn't the right decision: what I can tell you is that if you do go back you should absolutely concentrate on networking, building connections, and getting as much practical dev experience as possible. All of these will be far more valuable to you when it comes to getting a job than the academic content of the degree itself.
>When you submit your resume to a large tech company on their job site the chances of it getting to a hiring manager are exceptionally slim. If you actually know the hiring manager - or know somebody who knows the hiring manager - your chances are exponentially higher.
This is just from hearsay and personal anecdotes, but many people have experienced that getting attention from big tech companies comes a lot easier as a new grad than as as a more experienced developer a couple years since getting their degree.
College makes it pretty easy to build up a connection to larger companies. If you intern at X, then X is much more likely to give you a job offer. My view is that college is just a means to an end. I agree that just getting a degree doesn't prove much. But what you do in your journey to graduation- that really matters.
Good universities provide many doorways to networking than you don't get as easily afterwards. And it's not just of the professional kind either. How many people have stated how much harder it is to make new friends after college?
This is just from hearsay and personal anecdotes, but many people have experienced that getting attention from big tech companies comes a lot easier as a new grad than as as a more experienced developer a couple years since getting their degree.
College makes it pretty easy to build up a connection to larger companies. If you intern at X, then X is much more likely to give you a job offer. My view is that college is just a means to an end. I agree that just getting a degree doesn't prove much. But what you do in your journey to graduation- that really matters.
Good universities provide many doorways to networking than you don't get as easily afterwards. And it's not just of the professional kind either. How many people have stated how much harder it is to make new friends after college?
When looking for schools, find ones with coop programs. They bake internships into their curriculum.
Right now, what I am doing is going to developer meetups, talk to them after the seminar is over and get their business cards. Then I reach out to them and ask if they know if their company's hiring. Sometimes I get put in the interview process and fail, but most of the time I hear that they don't have anything appropriate for me.
So it's not much just considering college education for its classes as I am for the reputation of going to one of the better ones. Joining academic clubs, going through applying to internships. The path of least resistance to getting $BIG_CORP on your resume is by interning as a student. It's easier to get in that way than as an experience developer, where you'll be evaluated more harshly.
I mean, would most MOOC's provide students access to career fairs and internships at $BIG_CORP?
Also, as someone approaching middle-age, I would be taking my classes more seriously than many students 10 years younger than me.
So it's not much just considering college education for its classes as I am for the reputation of going to one of the better ones. Joining academic clubs, going through applying to internships. The path of least resistance to getting $BIG_CORP on your resume is by interning as a student. It's easier to get in that way than as an experience developer, where you'll be evaluated more harshly.
I mean, would most MOOC's provide students access to career fairs and internships at $BIG_CORP?
Also, as someone approaching middle-age, I would be taking my classes more seriously than many students 10 years younger than me.
> for the reputation of going to one of the better ones.
> as someone approaching middle-age, I would be taking my classes more seriously than many students 10 years younger than me.
I've been to the CS departments at Stanford, Harvard, MIT, CalTech, and the like. The competition is brutal. For every student that's slacking off there is another doing everything they can to keep their 4.0 GPA.
Don't kid yourself that your fellow students won't be taking their classes incredibly seriously.
> The path of least resistance to getting $BIG_CORP on your resume is by interning as a student. It's easier to get in that way than as an experience developer, where you'll be evaluated more harshly.
I promise you this isn't true. Google gets around 50,000 applications for 1,500 internships. That's a 3% acceptance rate. You will be competing for internships against wunderkinds who have been coding all their life. Have you asked yourself what you would do if you spent several years getting a CS degree and didn't get the internship you were looking for at a big tech company? Because that's statistically the most likely outcome.
You say you've had interviews and failed: do you think a CS degree would help you pass? Because having been in hundreds of technical interviews I can say that most of the things being tested can be picked up in a few months of prep.
Networking is more than taking a business card. It's building relationships, friendships, and connections. It is hard work, and not everyone can do it. If you do go back to school, I would absolutely concentrate on building as many of these connections as you can.
> as someone approaching middle-age, I would be taking my classes more seriously than many students 10 years younger than me.
I've been to the CS departments at Stanford, Harvard, MIT, CalTech, and the like. The competition is brutal. For every student that's slacking off there is another doing everything they can to keep their 4.0 GPA.
Don't kid yourself that your fellow students won't be taking their classes incredibly seriously.
> The path of least resistance to getting $BIG_CORP on your resume is by interning as a student. It's easier to get in that way than as an experience developer, where you'll be evaluated more harshly.
I promise you this isn't true. Google gets around 50,000 applications for 1,500 internships. That's a 3% acceptance rate. You will be competing for internships against wunderkinds who have been coding all their life. Have you asked yourself what you would do if you spent several years getting a CS degree and didn't get the internship you were looking for at a big tech company? Because that's statistically the most likely outcome.
You say you've had interviews and failed: do you think a CS degree would help you pass? Because having been in hundreds of technical interviews I can say that most of the things being tested can be picked up in a few months of prep.
Networking is more than taking a business card. It's building relationships, friendships, and connections. It is hard work, and not everyone can do it. If you do go back to school, I would absolutely concentrate on building as many of these connections as you can.
> Also, as someone approaching middle-age, I would be taking my classes more seriously than many students 10 years younger than me.
Son, this isn't Animal House. Even at mid-tier universities, most students in engineering programs have been working hard their entire lives. Do you have the stamina to pound Red Bull for consecutive all-nighters? These kids do. Some of them have been amped on Adderall to eke out minimum GPA improvements since 10th grade. Engineering students are machines.
Son, this isn't Animal House. Even at mid-tier universities, most students in engineering programs have been working hard their entire lives. Do you have the stamina to pound Red Bull for consecutive all-nighters? These kids do. Some of them have been amped on Adderall to eke out minimum GPA improvements since 10th grade. Engineering students are machines.
I would highly recommend that you pursue this. I'm quite a bit older than you and am pursuing and CS degree at Columbia part time as a General Studies student.
My motivation is different than yours in that I don't see myself writing code professionally, but believe understanding technology, from logic circuits, to math and data structures begins to reframe how you think/how I think.
Also learning within a university setting is a great addition to all that you can continue to teach yourself remotely which is generally more tactical, like learning R via Courseworks.
You may also find that the diversity in the course-work may point you in a direction where you're more naturally drawn. Maybe you'll find a different path, meet your future wife, meet a business partner, or some other unexpected outcome. At the very least you will learn something.
All the best...
My motivation is different than yours in that I don't see myself writing code professionally, but believe understanding technology, from logic circuits, to math and data structures begins to reframe how you think/how I think.
Also learning within a university setting is a great addition to all that you can continue to teach yourself remotely which is generally more tactical, like learning R via Courseworks.
You may also find that the diversity in the course-work may point you in a direction where you're more naturally drawn. Maybe you'll find a different path, meet your future wife, meet a business partner, or some other unexpected outcome. At the very least you will learn something.
All the best...
I studied at the same school while working full time (got my bachelors when I was 39)
It was a great experience, besides taking CS courses and Columbia Core I've also done some undergrad research in machine learning in one of the labs. It helped landing a job in R&D while I was still studying.
I'd recommend to contact professors doing interesting work and volunteer as a 'research programmer', previous SW dev experience helps a lot. They get free labor and you get to work on exciting stuff that changes your career.
It was a great experience, besides taking CS courses and Columbia Core I've also done some undergrad research in machine learning in one of the labs. It helped landing a job in R&D while I was still studying.
I'd recommend to contact professors doing interesting work and volunteer as a 'research programmer', previous SW dev experience helps a lot. They get free labor and you get to work on exciting stuff that changes your career.
A bit about me. I'm 35, male, unemployed and unmarried (so I don't have much financial backing)
The lack of a spouse also means you don't have a lot of responsibilities and are fairly free to go where you want and do what you want (assuming you mean: childless and generally unencumbered).
and don't live in a tech hub.
This might be your real problem.
Re college:
If you can get enough in the way of financial aid, like grants (not loans), and can use school as an excuse to move someplace that has more tech jobs, even if it isn't a major tech hub, it might be a good move. You are currently unemployed. If your resume said student instead of unemployed, that would be a better position from which to market yourself.
Another option: Look for gigs instead of a job. Put "freelancer" on your resume instead of unemployed.
The lack of a spouse also means you don't have a lot of responsibilities and are fairly free to go where you want and do what you want (assuming you mean: childless and generally unencumbered).
and don't live in a tech hub.
This might be your real problem.
Re college:
If you can get enough in the way of financial aid, like grants (not loans), and can use school as an excuse to move someplace that has more tech jobs, even if it isn't a major tech hub, it might be a good move. You are currently unemployed. If your resume said student instead of unemployed, that would be a better position from which to market yourself.
Another option: Look for gigs instead of a job. Put "freelancer" on your resume instead of unemployed.
You should ease into this by taking some online, full credit college classes at a named institution like Harvard Extension, UCB extension or Georgia Tech for example. Given you already have a bachelors, why not go for a masters which be more distinguishing than another undergrad degree.
If you enjoy the classwork and find it helpful to your career, you can dedicate an increased percent of your time.
We're all lucky that there are so many choices available.
If you enjoy the classwork and find it helpful to your career, you can dedicate an increased percent of your time.
We're all lucky that there are so many choices available.
Oregon State also has an online computer science post-bacc program. I believe it's the same degree that on-campus students receive. You can do it full time in one year or take one course a semester and do it in four years. I believe the course is about 28k total iirc.
Before taking on debt you should truthfully ask yourself if you did everything in your power to advance. Did you even apply to any jobs you want? Or, did you assume you were not worthy and give up. You identify your own shortfalls (such as your geographic location), but demonstrate no action to change the circumstance. In addition, even Harvard degrees guarantee nothing. There are so many people with the top degrees who are "unsuccessful". If I am not mistaken at least one top employee at Steam started his career at Waffle House. What a genius. https://www.polygon.com/2013/2/1/3941274/gabe-newell-steam-b...
All this said, education is the best investment you can make. Why not just work your hard to get a better job and then take night classes toward a masters? Find some medium size company who might even pay for it and work toward your dream.
Best of luck to you!
All this said, education is the best investment you can make. Why not just work your hard to get a better job and then take night classes toward a masters? Find some medium size company who might even pay for it and work toward your dream.
Best of luck to you!
> My example: adaptive resolution grids for fluid simulations.
You aren't going to get any real exposure to this through a CS degree. The action here is happening in Applied Math, Aerospace Engineering, Mechanical Engineering, and similar departments. Some schools (like Caltech) have more specifically tailored Computational Science/Engineering, but that is pretty rare.
You aren't going to get any real exposure to this through a CS degree. The action here is happening in Applied Math, Aerospace Engineering, Mechanical Engineering, and similar departments. Some schools (like Caltech) have more specifically tailored Computational Science/Engineering, but that is pretty rare.
What do you consider to take for one of those engineering fields? I'm thinking of UIUC (they have aerospace as well) and curious to know which schools are most targeted for internships and job recruitment related to engineering.
Take the math classes at a community college and transfer. It will be cheaper and help you figure out if its a good fit. I tried CS and couldn't do the Math above Calculus 1. UIUC is a great school and by no means easy. I have friends that graduated from there.
If you can afford it by all means. It's never too late to go to College and get an education but you need to be highly motivated. Also don't neglect Math, in fact, I you can get a Math degree it's even better. My 2 cents.
Just want to pimp this a little: http://www.cs.ox.ac.uk/softeng/
It's:
- MSc
- University of Oxford
- Very easy admissions -- you can "prove" your way on to the course by taking a few modules and doing well in them. No undergrad required, either.
- Part-time and meant to be worked around a real job
- Comparatively cheap ... ~$40k spread over 4 years
You will need to be physically present in Oxford for 12 weeks over 4 years, but there were Americans who were making it happen (and plenty of non-UK Europeans + about 50% British).
People take an MSc from Oxford on your CV seriously.
It's:
- MSc
- University of Oxford
- Very easy admissions -- you can "prove" your way on to the course by taking a few modules and doing well in them. No undergrad required, either.
- Part-time and meant to be worked around a real job
- Comparatively cheap ... ~$40k spread over 4 years
You will need to be physically present in Oxford for 12 weeks over 4 years, but there were Americans who were making it happen (and plenty of non-UK Europeans + about 50% British).
People take an MSc from Oxford on your CV seriously.
i did this at .. i think 32.
i'm glad i did, i did't go to undergrad, so I got to learn algorithms and theory and some other things. completely unprepared for the social reality of being a student at an associate professors age. its also pretty difficult looking at some of the material from the perspective of a commercial developer.
in your case it depends alot on whether or not you want to work on the physics side or the code side. if its the former your choice is pretty clear, if its the latter I think you'd be surprised at how starved HPC is for talent of any kind. if you're already in the US lots of labs hire pretty junior people and there is a fair amount of room you can grow just on your own inertia. there are also alot of fairly junior positions in industry in sales engineering and related roles doing benchmarks. if you show an interest there is room there also to grow into at least maintenance development.
again, if you are in the US - LBNL/NERSC/UCB is a great place to do work in adaptive grids. see if you can meaningfully get employed in some support role and pivot. they are also really nice people and would love to let you grow into a role.
another advantage of working as staff, even junior staff at a university or associated lab is that you get access to courses as a non-matriculated student. that way if you do want to take grad level scientific computing or analysis or discrete time domain pde solutions everyone is perfectly happy for you to go to class free from 2-3 MWF
anyways, if you're sure that fluids is your future, maybe just try to cut to the chase a little. hope you are ok with fortran though.
i'm glad i did, i did't go to undergrad, so I got to learn algorithms and theory and some other things. completely unprepared for the social reality of being a student at an associate professors age. its also pretty difficult looking at some of the material from the perspective of a commercial developer.
in your case it depends alot on whether or not you want to work on the physics side or the code side. if its the former your choice is pretty clear, if its the latter I think you'd be surprised at how starved HPC is for talent of any kind. if you're already in the US lots of labs hire pretty junior people and there is a fair amount of room you can grow just on your own inertia. there are also alot of fairly junior positions in industry in sales engineering and related roles doing benchmarks. if you show an interest there is room there also to grow into at least maintenance development.
again, if you are in the US - LBNL/NERSC/UCB is a great place to do work in adaptive grids. see if you can meaningfully get employed in some support role and pivot. they are also really nice people and would love to let you grow into a role.
another advantage of working as staff, even junior staff at a university or associated lab is that you get access to courses as a non-matriculated student. that way if you do want to take grad level scientific computing or analysis or discrete time domain pde solutions everyone is perfectly happy for you to go to class free from 2-3 MWF
anyways, if you're sure that fluids is your future, maybe just try to cut to the chase a little. hope you are ok with fortran though.
Internships and connections will definitely help. I've personally started a couple co-op programs that resulted in permanent hires.
I'd look at TopCoder and other coding competitions for experience. I wish I had more time to do them myself.
You can also gain experience with CRUD app development. Being able to quickly troubleshoot through layers of CRUD, tuning performance by figuring out what the bottleneck is, etc...time spent investigating and learning is good experience.
I'd look at TopCoder and other coding competitions for experience. I wish I had more time to do them myself.
You can also gain experience with CRUD app development. Being able to quickly troubleshoot through layers of CRUD, tuning performance by figuring out what the bottleneck is, etc...time spent investigating and learning is good experience.
>> I've personally started a couple co-op programs that resulted in permanent hires.
Do you have any notes about this process? I would love to understand what it ment to accomplish this.
Do you have any notes about this process? I would love to understand what it ment to accomplish this.
It's pretty straightforward to get co-op students to come work for you. It's harder to manage them in a way where you both succeed.
1. Find a local university that is known for their co-op program. They will be looking for companies to sponsor their students. 2. Write a job description and post it on their job board. 3. Interview. Remember they don't really have much experience, especially if it's their first co-op. You can walk through FizzBuzz and other standard programming questions. Give them an open ended problem to see how they think about solving it. 4. Onboard the co-op(s) you end up hiring. It might be their first job, so provide clear detail on expectations and leave time for questions. 5. Give them really simple assignments at first, just like you would any new hire, but with more direction. Have them reproduce a bug. 6. Ok, now tell me how you're going to fix that bug. Put it in an e-mail, and we'll review. 7. Ok, let's step through it together in the debugger (many co-ops do not have that experience). 8. Ok, let's work through the release cycle to get it into the dev environment. 9. Ok, now let's work with QA to get it into test. 10. Ok, now let's work to get it into production. 11. Goto 5. 12. Three to six months pass... 13. Co-op eventually graduates! Now they're looking for a job, and reach out to you. 14. They have experience with your codebase, and you know what they can do, so you hire them.
1. Find a local university that is known for their co-op program. They will be looking for companies to sponsor their students. 2. Write a job description and post it on their job board. 3. Interview. Remember they don't really have much experience, especially if it's their first co-op. You can walk through FizzBuzz and other standard programming questions. Give them an open ended problem to see how they think about solving it. 4. Onboard the co-op(s) you end up hiring. It might be their first job, so provide clear detail on expectations and leave time for questions. 5. Give them really simple assignments at first, just like you would any new hire, but with more direction. Have them reproduce a bug. 6. Ok, now tell me how you're going to fix that bug. Put it in an e-mail, and we'll review. 7. Ok, let's step through it together in the debugger (many co-ops do not have that experience). 8. Ok, let's work through the release cycle to get it into the dev environment. 9. Ok, now let's work with QA to get it into test. 10. Ok, now let's work to get it into production. 11. Goto 5. 12. Three to six months pass... 13. Co-op eventually graduates! Now they're looking for a job, and reach out to you. 14. They have experience with your codebase, and you know what they can do, so you hire them.
Given plenty of time I'd probably focus on e.g. contributing useful code to open source projects (maybe scipy, numpy? not sure what aerospace involces). Probably cheaper and definitely faster than college, and doable in parallel to paying work.
You'd have to ramp up some on your own, of course. But then you can point at real scientific computing code, which is better than "and I took some classes".
You'd have to ramp up some on your own, of course. But then you can point at real scientific computing code, which is better than "and I took some classes".
The “better school” has little to do with jobs most of the time. I graduated from an unknown state college in a small town with a CS degree in 1996 with a very poor curriculum and within three years of graduating I was able to compete for your standard developer job.
There were a few things I had working in my favor. By the time I went to college, I already had six years of hobby programming experience and I got an internship as a computer operator the year before I graduated in a major metropolitan city. They gave me a job the next year and I used that and studying to be competitive.
I don’t see how “going back to school” will help. Get a job as a developer - even a poorly paid one - in a major metropolitan area with a lot of software developer jobs, network with some local recruiters in the city you decide to move to. Find what skills are in demand and start learning.
Put some side projects on Github to build a portfolio. You already have experience, learn how to leverage it in your next job.
There were a few things I had working in my favor. By the time I went to college, I already had six years of hobby programming experience and I got an internship as a computer operator the year before I graduated in a major metropolitan city. They gave me a job the next year and I used that and studying to be competitive.
I don’t see how “going back to school” will help. Get a job as a developer - even a poorly paid one - in a major metropolitan area with a lot of software developer jobs, network with some local recruiters in the city you decide to move to. Find what skills are in demand and start learning.
Put some side projects on Github to build a portfolio. You already have experience, learn how to leverage it in your next job.
I did something very similar. I went to grad school to focus on a specific field of computer science. University is an amazing place. Classes are not the thing thats valuable. To me its the time, freedom, and the environment to really dig deep in your course topics, or gain experience in areas that really interest you. The one thing I learned at university is there is soo much opportunity to do research. A lot universities have a computer graphics department or a lab that work on fluid simulations. Working at a lab provide you a ton of opportunity to connect, network, and gain experience where you want to go is right there.
I went to grad school to focus pursue a career specializing in Augmented Reality, and being in this environment has helped me get much more exposure and networking in that field than working on open source projects or building side projects.
I went to grad school to focus pursue a career specializing in Augmented Reality, and being in this environment has helped me get much more exposure and networking in that field than working on open source projects or building side projects.
College education at least to me is a scam. My wife recently started her school because she can’t work here as she is on a dependent visa, and the only way she could work here is to get a student visa. Paying 48k a year for 10 week courses per quarter which she could have easily learned from coursera in much better way. I feel per course fee is too high for a ten week more or less too fast and superfluous study.
I honestly think you could brush up your skills through coursera and other tools and then present your work through github and LinkedIn or your network. I know you need a bit of luck, however if you have good projects, you will get notice the coveted tech company recruiters. I have friends who took this path and are successful.
This will save you a tonne of money (those loan payments are nasty) and working hard would be common denominator.
I honestly think you could brush up your skills through coursera and other tools and then present your work through github and LinkedIn or your network. I know you need a bit of luck, however if you have good projects, you will get notice the coveted tech company recruiters. I have friends who took this path and are successful.
This will save you a tonne of money (those loan payments are nasty) and working hard would be common denominator.
With most colleges (especially in CA) not taking in students who already have a degree, your options are limited to private (Which costs more) or lesser known and less popular colleges who probaly aren't the top tier of STEM schools. That means taking on 4 years of a lot of debt and probably no income, which is worth thinking about.
I wish schools would not turn away students coming back for a second degree especially if the first degree didnt pan out in terms of job prospects, or if it wasn't what they wanted to do in the first place.
I wish schools would not turn away students coming back for a second degree especially if the first degree didnt pan out in terms of job prospects, or if it wasn't what they wanted to do in the first place.
CS is fine, but if you can do it while working. You don't need the degree per-se, just gain the experience and the knowledge.
I"m a college drop out (I could in theory get a bachelors with if I do the paperwork and I'm 95% to an engineering degree). Prioritize learning over "labels". Most of the learning happens on the job.
I"m a college drop out (I could in theory get a bachelors with if I do the paperwork and I'm 95% to an engineering degree). Prioritize learning over "labels". Most of the learning happens on the job.
If you do go back to school, I'd strongly recommend going straight for your Masters in a program that is known for HPC.
Regardless, reach out to the other science departments to find HPC-related projects. I ended up getting an undergraduate fellowship helping a mesoscale weather simulation project.
Regardless, reach out to the other science departments to find HPC-related projects. I ended up getting an undergraduate fellowship helping a mesoscale weather simulation project.
If I were ever to go to school, it'd be for something other than CS. You're already an expert in your field with that much experience under your belt! If you want to do aerospace and want to go to school, you should look into an aerospace degree imo.
Yeah, definitely, go for it. Do some math and maybe physics too.
Now I know web development can have the potential to provide a stable, well-paying career. I have not seen this much in my experience. I've only been contracted by very small companies for putting out fires, or for projects that they don't want their "core" employees to work on. These places underpay a lot to contractors, and do not make any permanent job offers to me. My professional network is also weak. Nobody I know is looking to hire software developers. I think my reputation works against applying to large companies.
As for my goals, it is to work in high-performance computing, in particular with aerospace. My example: adaptive resolution grids for fluid simulations. My reality: CRUD apps and CMS websites for small-med business clients.
Obviously good experience and talent can overcome that, but that's a lot easier said than done. I did not receive a lot of good experience, and see myself as a mediocre developer. So what are your thoughts about returning to college and doing it "the proper way"?
The plan is getting a CS degree at a better school, get one or more internships from reputable tech companies, build connections with people from those companies, and receive full-time job offers. There are a few stated theories made about the hiring pipelines of many of these companies, giving new grads an ironic strength.