
Ask HN: Your thoughts on returning to college to “refresh” a career? - djellybeans
I&#x27;m curious as to how much it helps, in particular for a software engineer. A bit about me. I&#x27;m 35, male, unemployed and unmarried (so I don&#x27;t have much financial backing) and don&#x27;t live in a tech hub. I went to a fairly standard state school for a non-STEM degree to get into web development.<p>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&#x27;ve only been contracted by very small companies for putting out fires, or for projects that they don&#x27;t want their &quot;core&quot; 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.<p>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.<p>Obviously good experience and talent can overcome that, but that&#x27;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 &quot;the proper way&quot;?<p>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.
======
tptacek
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.

~~~
nether
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.

~~~
davidzweig
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...](http://www.nptelvideos.in/2012/11/foundation-of-scientific-
computing.html)

Engineering Mathematics I and II (Stroud) are really nice self-study books.

------
Mr_P
> 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.

~~~
slavik81
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](https://github.com/cgmb/euler/blob/master/README.md)

------
bartart
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.

~~~
djellybeans
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.

------
probinso
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.

------
subpixel
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.

------
raintrees
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).

------
acomjean
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.

------
objclxt
> 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.

~~~
djellybeans
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.

~~~
objclxt
> 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.

------
jpasmore
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...

~~~
bra-ket
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.

------
Mz
_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._

------
davidwihl
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.

~~~
weston
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.

------
bbimbop
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...](https://www.polygon.com/2013/2/1/3941274/gabe-newell-steam-box-
talk-ut)

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!

------
santaclaus
> 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.

~~~
djellybeans
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.

~~~
limeblack
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.

------
camus2
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.

------
peteretep
Just want to pimp this a little:
[http://www.cs.ox.ac.uk/softeng/](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.

------
convolvatron
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.

------
TYPE_FASTER
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.

~~~
probinso
>> 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.

~~~
TYPE_FASTER
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.

------
itamarst
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".

------
scarface74
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.

------
mendeza
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.

------
mandliya
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.

------
hw
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.

------
juancn
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.

------
jnwatson
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.

------
Sir_Cmpwn
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.

------
dilap
Yeah, definitely, go for it. Do some math and maybe physics too.

