Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Vinz Clortho
Jul 19, 2004

I'm 32 years old, and a first-year student in a four-year computer science and mathematics program (actually two three-year programs that I've Cronenberged into one through concurrent study). Before this, I was toiling away at a PhD in law, and hating every minute of it. I'm looking for some advice on making the transition, finding work while I'm still studying, using stuff like LinkedIn effectively, etc.

***

Here's some background in case it's useful, or if you like to read about other peoples' not-very-interesting stories (I know I do, for whatever reason):

Around May last year, still waist-deep in the PhD bog, I hit that crucial tipping point, where misery outweighed the dread of not reaching something that I'd invested so much of my identity (and time, let's not forget time) in. Once I admitted to myself that I didn't actually want to be an academic anymore, I was overcome by a Buddha-like sense of tranquility and existential bliss. I quit almost immediately. I then had the choice of either practising as a lawyer, or doing something else. I loved studying law (pre-PhD), but it was always a means to an academic career, and I couldn't see myself working as a solicitor or a barrister.

I took a couple of weeks off to decompose, and decided to run through some of the maths stream on Khan Academy for fun/interest. I hated maths in high school, and didn't do well, but a friend loaned me a copy of Fermat's Last Theorem by Simon Singh a few years back, which introduced me to the idea of mathematical beauty, and I'd wanted to at least cover what I missed in high school, but "never had the time". Turns out I loved it. I'd always been interested in programming (and had written some tools in Python to "aid my research"), so knowing that I might be able to keep up with the maths required to study computer science spurred me to go back to uni and get a degree, rather than trying to self-teach my way into the field.

Once I got here, I caught the maths bug, hence the concurrent degrees. I'm going to attempt a double-major in pure maths and statistics; I was more of a critical theory and history guy in law, but always looking forlornly at the interesting ways my social scientist colleagues could get data to talk. So I'm kind of hedging between software development and data science, with the assumption that there will be interesting intersections between them at the very least (e.g. deep learning).

***

I suspect people liked me—thirtysomethings who were unsatisfied with the path their careers were taking and decided to jump into tech—are a dime a dozen at the moment. I thought I'd ask you guys for general advice, or see if anyone else is in a similar position and would like to commiserate. One thing that's tricky is being between qualifications: overqualified for some casual stuff that's floating around, underqualified for new-career-relevant jobs. I've just started doing some tertiary-level tutoring work on campus (law students), but I'm keen to find work in the tech sector ASAP so that I can hit the ground running come graduation.

Adbot
ADBOT LOVES YOU

Quizzlefish
Jan 26, 2005

Am I not merciful?
I'm in a similar (ish) position and I'm also interested in any answers tot he Ops questions.

I'm a partner in a very small consulting form and I've always been able to write code. I've done a bunch of Coursera CompSci courses and I'm wondering what is a sensible medium-term next step for me. I much prefer coding to my current job (I spent many hours while on vacation programming algorithms in Java!). Should I do a formal qualification? Should I do one online? Or will I be able to find a job of some kind without doing so?

What kind of skills are in short supply at the moment and are worth learning? Are there jobs for executives in tech that don't need a compsci qualification?

Zeris
Apr 15, 2003

Quality posting direct from my brain to your face holes.
Watching with interest.

JIZZ DENOUEMENT
Oct 3, 2012

STRIKE!

Haven't looked at any serious math stuff but I have completed a bunch of SQL online free courses in the last month or so and look forward to tackling python. Thinking of taking a professional development certification course in python so I can have at least some proof of competency.

I have wasted so many opportunities should have just done CS from the start but oh well

JIZZ DENOUEMENT fucked around with this message at 05:53 on Dec 23, 2019

Get Innocuous!
Dec 6, 2011

come together
I'm 25 years old and took a job as a software developer three months ago right after college. Obviously I'm very inexperienced but your story is similar to mine in that I had an "epiphany" where I realized I hated the direction my life was taking and signed up for community college the day after. It ended up working out really well for me and while I can't really make broad insights on the industry as a whole I can at least tell you a little bit about what I've learned so far.

You don't need a four-year degree in CS to become a programmer. I have an associate's in computer engineering, but you don't even need a degree in a field related to programming to get a job as a programmer. I have a friend who is also a software developer and has a BA in physics. His boss has a BA in political science. The reason why they got jobs as programmers is because they were able to prove through a resume and interview that they can code. In addition to that, you need to be able to prove that you can adapt easily and pick up new/unfamiliar technologies on the fly. While I was in school I was in this nice comfy bubble of mostly using C# (and avoiding front-end stuff as much as I possibly could) but when I started working I was basically forced to learn JavaScript to work with our existing code base. It was incredibly stressful and frustrating at first but eventually something finally "clicked" and I was able to see how things came together. It ended up being incredibly satisfying on top of that. From what I can tell this is a very common thing for developers, especially junior ones. It's a constant learning process and there hasn't been a dull moment for me yet.

At the end of my interview my current boss said something along the lines of "Yeah I don't really care about where you went to school as long as you get your work done" so don't worry about your educational background as much as your ability to write actual code.

Vinz Clortho
Jul 19, 2004

Get Innocuous! posted:

You don't need a four-year degree in CS to become a programmer. I have an associate's in computer engineering, but you don't even need a degree in a field related to programming to get a job as a programmer. I have a friend who is also a software developer and has a BA in physics. His boss has a BA in political science. The reason why they got jobs as programmers is because they were able to prove through a resume and interview that they can code. In addition to that, you need to be able to prove that you can adapt easily and pick up new/unfamiliar technologies on the fly. While I was in school I was in this nice comfy bubble of mostly using C# (and avoiding front-end stuff as much as I possibly could) but when I started working I was basically forced to learn JavaScript to work with our existing code base. It was incredibly stressful and frustrating at first but eventually something finally "clicked" and I was able to see how things came together. It ended up being incredibly satisfying on top of that. From what I can tell this is a very common thing for developers, especially junior ones. It's a constant learning process and there hasn't been a dull moment for me yet.
This is great—I'm glad to hear you were able to jump across successfully. The payoffs for the kind of problem solving you do in programming are satisfyingly immediate.

I've heard similar things from developer friends about not necessarily needing a degree to move into the field. I considered going one further and trying to take the self-taught route, but didn't for Reasons. It's good to know that if our financial situation gets dire, though, I might be able to cut out early.

The first-year CS courses have been kind of dog poo poo so far, mostly because anyone who's muddled through on their own for a couple of years will have picked up the stuff by osmosis. But next year we start properly on algorithms and data structures. The maths has been excellent.

Doghouse
Oct 22, 2004

I was playing Harvest Moon 64 with this kid who lived on my street and my cows were not doing well and I got so raged up and frustrated that my eyes welled up with tears and my friend was like are you crying dude. Are you crying because of the cows. I didn't understand the feeding mechanic.
i got into the field late, i did a MS of CS online through the university of west georgia. I loved the program, and it only took 2 years.

Colin Mockery
Jun 24, 2007
Rawr



1. Get a github account and use it as a portfolio (code personal projects and put them on there).

2. If you're in an area with tech meetups, go to those (it's a networking event).

3. The Bay Area is super expensive to live in. Depending on what you want and how many dependents you have (wife who doesn't work, kids, dogs that need yard space), a 100k job in San Francisco might be equivalent to a 60-70k job somewhere else.

4. If you're hoping to get a first job after a career switch, talking to recruiters on LinkedIn might be worth your time (their incentive is to place you as soon as possible though, so their interests may not always align with yours).

5. Please don't put MS Office on your resume.

Che Delilas
Nov 23, 2009
FREE TIBET WEED

Chemondelay posted:

I'm 32 years old,

-snip-

One thing that's tricky is being between qualifications: overqualified for some casual stuff that's floating around, underqualified for new-career-relevant jobs. I've just started doing some tertiary-level tutoring work on campus (law students), but I'm keen to find work in the tech sector ASAP so that I can hit the ground running come graduation.

I'm going to ignore the little details of your situation and give you some general advice on these two points.

You may have some feeling that you're getting into the game late or that you're older than the people you're competing with for jobs and therefore somehow at a disadvantage. Beat that feeling to death with a stick, it's bullshit. You might have a bit more trouble landing a job at LikeFacebookButForArmadillos.io, the Hip New Bay-Area Startup Who Only Hires 20-Somethings And Wrings Them Out Like Dishrags, but there are plenty of development jobs at great companies for people who have families and lives and other priorities outside of work.

You may also get out of school and feel "not ready" to start applying to jobs, and want to wait until you learn this technology or framework or design pattern or create this little program first or blah blah blah. This feeling isn't something you can beat to death with a stick, but it's one you should get comfortable living with and not let it stop you from actually becoming employed. That's because as you work (or study) as a developer, you will learn about things you had no idea existed. Learn about one of those things, and the cycle repeats, and at a rate that you can't actually gain any ground on - it just keeps mushrooming. So get used to that feeling and go out and try and find jobs doing what you want to do despite it.

Just remember that you won't be competing against the Microsoft MVPs or the people who created their own programming languages or any of that poo poo - you'll be competing with other grads, and most of them won't have the math background you will (so you might be able to go right into a data science position or something if you want for your first gig). Don't let yourself be intimidated into paralysis.

Go read those last two paragraphs again. Internalize them. Nearly every single new developer worth a poo poo has the same feelings I've described, including myself (I still do, I just came to terms with them a long time ago). I write this little essay for someone on these forums every couple of months, it's so common. You'll do fine.

Vegetable
Oct 22, 2010

I'm in a kinda similar situation. Dabbled in intro SQL and Python in college, graduated with a BA in two social sciences, but am working in an unfulfilling writing & research job now. It's still relatively early career but I know I want a hard pivot to data science sooner rather than later. The plan is to do a one- or two-year Master's program in data science or analytics to get my foot firmly in the door.

IMO the biggest start you can have is what the above guy said: write some code for a personal project and upload it on github. But it's hard to juggle that learning with an intensive full-time job. OP you should be much better placed to do this.

PokeJoe
Aug 24, 2004

hail cgatan


I made the switch sorta, got a bs in chemistry, worked a bit, and hated the job outlook. Learned to program on my own and eventually got a job as a developer full time. Been doing it for a year now and I'm gonna have my student loans all paid off in my first year of computering after making minimum payments since I graduated since that's all I could afford. Been a pretty good decision so far.

Most of my coworkers are in their mid to late 30s so I wouldn't worry about your age much.

Fozzy The Bear
Dec 11, 1999

Nothing much, watching the game, drinking a bud
Almost same situation, mid-thirties, recently went back to college and got my BA in Economics. Really enjoyed the Econometrics - statistical regression classes.

Want to get into data analysis, every job I see requires 2 years experience minimum.

Che Delilas
Nov 23, 2009
FREE TIBET WEED

Fozzy The Bear posted:

Want to get into data analysis, every job I see requires 2 years experience minimum.

Keep in mind that job postings are idealized wish-lists; I'd apply to those 2 years of experience ones if they look interesting. Yes, that first job is the hardest one to get so you should keep your expectations for those ones low, but don't give yourself zero chance by not applying in the first place. After all, they know what they can compromise on better than you do.

oRenj9
Aug 3, 2004

Who loves oRenj soda?!?
College Slice
Stats + Linear Algebra + python + SQL is about everything you need to get a data science job.

Be warned that it's not nearly as sexy as it sounds. There's a huge amount of grunt work involved getting data funneled from all over hell and creation into a single database. In the two years I've been in my current ole, I've spent probably 60% of my time building an ETL tool to capture all the information I need, and about 10% of the running experiments in Juypiter notebooks (I do web analytics).

The data science field is the new hotness that everyone wants to get into, and for the most part the tools have commodified the position. It's pretty easy to fire up Scipy or Tensorflow and build something passable so you can claim to be using "AI."

If you're more technical, be sure to build up your programming chops. There are plenty of people out there that can show off something cool in Jupyter/Tableau with existing data sets. But being able to build original data sets is really where you're going to separate yourself.

If you have better aesthetics though, you could pursue a more graphical role. Being able to make pretty, intuitive charts to convey findings is really valuable too.

If you took Linear Algebra, then check out Fast.ai for a comprehensive introduction course to AI/ML. The lectures are YouTube and their notebooks are on github.

Liquid Communism
Mar 9, 2004


Out here, everything hurts.




Che Delilas posted:

I'm going to ignore the little details of your situation and give you some general advice on these two points.

You may have some feeling that you're getting into the game late or that you're older than the people you're competing with for jobs and therefore somehow at a disadvantage. Beat that feeling to death with a stick, it's bullshit. You might have a bit more trouble landing a job at LikeFacebookButForArmadillos.io, the Hip New Bay-Area Startup Who Only Hires 20-Somethings And Wrings Them Out Like Dishrags, but there are plenty of development jobs at great companies for people who have families and lives and other priorities outside of work.

You may also get out of school and feel "not ready" to start applying to jobs, and want to wait until you learn this technology or framework or design pattern or create this little program first or blah blah blah. This feeling isn't something you can beat to death with a stick, but it's one you should get comfortable living with and not let it stop you from actually becoming employed. That's because as you work (or study) as a developer, you will learn about things you had no idea existed. Learn about one of those things, and the cycle repeats, and at a rate that you can't actually gain any ground on - it just keeps mushrooming. So get used to that feeling and go out and try and find jobs doing what you want to do despite it.

Just remember that you won't be competing against the Microsoft MVPs or the people who created their own programming languages or any of that poo poo - you'll be competing with other grads, and most of them won't have the math background you will (so you might be able to go right into a data science position or something if you want for your first gig). Don't let yourself be intimidated into paralysis.

Go read those last two paragraphs again. Internalize them. Nearly every single new developer worth a poo poo has the same feelings I've described, including myself (I still do, I just came to terms with them a long time ago). I write this little essay for someone on these forums every couple of months, it's so common. You'll do fine.

I'm in an adjacent field, more on the hardware side, but let me put this out there. I'd rather have any number of guys in their 30's than their early 20's. Work ethic, ability to communicate and approach responsibilities like an adult, and realistic expectations of work/life balance are vastly more valuable than you think they are in the tech industry.

PantsBandit
Oct 26, 2007

it is both a monkey and a boombox
Hey guys, I'm not in my 30s, mid 20s actually, but I figured this would be a good thread to ask in.

I've spent the last few years doing program management in non-profits. I've gotten a lot of good experience in volunteer management, program development, and multi-tasking, but there are elements of it that I hate. I don't want to fundraise, I don't want to have deadlines that rely on unreliable volunteers to meet, and I don't really want to work for a non-profit because 99% of their attention goes into saving money. Which is fine, but it means they are highly risk-averse.

So I was thinking about looking into a tech field. I am handy with computers (I built mine) and very comfortable around them. I handle the webpage for my program so I have a tiny bit of experience there. Really, I was interested in something to do with User Experience Design. I took a couple classes on design and ergonomics in college and it really appealed to me. I like the idea of critiquing and problem solving platforms to make them more straightforward and easy to use and I think it's something I'd be good at, at a conceptual level.

So the real question: I understand this isn't something that will come easily. I have a bachelors in English, and no coding experience. What classes, certifications, etc do employers look for? What are the top skills I need to have before I make a real push at trying to break into this field? Are there entry-level jobs that eventually lead to what I'd like to do?

Thanks for any help you can offer. It's a little scary trying to make this change and I'm looking for any advice I can get.

Seanzor
Mar 22, 2013

PantsBandit posted:

Hey guys, I'm not in my 30s, mid 20s actually, but I figured this would be a good thread to ask in.

I've spent the last few years doing program management in non-profits. I've gotten a lot of good experience in volunteer management, program development, and multi-tasking, but there are elements of it that I hate. I don't want to fundraise, I don't want to have deadlines that rely on unreliable volunteers to meet, and I don't really want to work for a non-profit because 99% of their attention goes into saving money. Which is fine, but it means they are highly risk-averse.

So I was thinking about looking into a tech field. I am handy with computers (I built mine) and very comfortable around them. I handle the webpage for my program so I have a tiny bit of experience there. Really, I was interested in something to do with User Experience Design. I took a couple classes on design and ergonomics in college and it really appealed to me. I like the idea of critiquing and problem solving platforms to make them more straightforward and easy to use and I think it's something I'd be good at, at a conceptual level.

So the real question: I understand this isn't something that will come easily. I have a bachelors in English, and no coding experience. What classes, certifications, etc do employers look for? What are the top skills I need to have before I make a real push at trying to break into this field? Are there entry-level jobs that eventually lead to what I'd like to do?

Thanks for any help you can offer. It's a little scary trying to make this change and I'm looking for any advice I can get.

Depends on what you want to do; many software shops have a few key roles:
- Programmer (write code)
- QA Tester (break code, write bug tickets; increasingly this overlaps with programmer [test automation])
- Program/Project Manager (maintain inaccurate schedules, facilitate cross-team coordination)
- Designer/UX person (design pretty websites/ensure that application workflows are smooth [e.g. that key features aren't buried in your UI]). Sounds like you want to do this?
- Product Manager (describe what the software should do, determine what features/bugs the team should work on next week/month/year. Some overlap with designer/UX person)

All of these roles benefit from at least some coding experience - I recommend that anyone pursuing a job in tech take a few free online introductory classes (I've had great experiences with Udacity). Beyond that:

- Programmer: take more coding classes. Build cool side projects and include them on your CV - this is crucial to show that you can do things and that you're passionate about coding). They don't have to be new or cool ideas, they just have to be a project. Example: I wrote an app that crawls through all hundreds of articles in my company's CMS, tests every hyperlink that appears in each article, and dumps out a .CSV enumerating every broken link and which page it was on. I also wrote an app that scraped results from http://www.saltybet.com/ to help me make better virtual bets. My boss thought the Saltybet thing was way cooler.
- QA Tester: IDK; I'd say just start applying for jobs once you have some coding classes done. Side project is a bonus
- Program Manager: You already have relevant experience. Start applying for jobs after you take a coding class or two. Side project is a bonus
- Designer/UX person: Take a few more classes that teach you HTML/CSS. Take a website you like and design a better version of it. Make your design pixel-perfect. Include it in your CV. Same rationale as why programmers include side projects.
- Product Manager: You can start applying for jobs. I manage a team of Product Managers and would absolutely consider someone with a major in English, years of work experience, and a few coding classes under their belt for an Associate role.

Your degree in English is a plus; good communication/interpersonal skills are increasingly in demand (and still depressingly rare) in tech - that major + coding stuff on the side is an appealing combo.

Vinz Clortho
Jul 19, 2004

Thanks for all of the advice so far guys, and to Che Delilas and Liquid Communism for the encouragement. We're coming up on the summer uni break here in Adelaide, so I'm looking around now for entry-level work for the next few months.

Devian666
Aug 20, 2008

Take some advice Chris.

Fun Shoe
There's a shortage of skilled workers in New Zealand and the large companies are telling people that they don't need degrees. If this is happening here there must be a similar demand for capable but not qualified people elsewhere.

https://www.stuff.co.nz/business/97253320/kiwi-businesses-commit-to-no-qualifications-required-hiring

PantsBandit
Oct 26, 2007

it is both a monkey and a boombox

Seanzor posted:

Depends on what you want to do; many software shops have a few key roles:
- Programmer (write code)
- QA Tester (break code, write bug tickets; increasingly this overlaps with programmer [test automation])
- Program/Project Manager (maintain inaccurate schedules, facilitate cross-team coordination)
- Designer/UX person (design pretty websites/ensure that application workflows are smooth [e.g. that key features aren't buried in your UI]). Sounds like you want to do this?
- Product Manager (describe what the software should do, determine what features/bugs the team should work on next week/month/year. Some overlap with designer/UX person)

All of these roles benefit from at least some coding experience - I recommend that anyone pursuing a job in tech take a few free online introductory classes (I've had great experiences with Udacity). Beyond that:

- Programmer: take more coding classes. Build cool side projects and include them on your CV - this is crucial to show that you can do things and that you're passionate about coding). They don't have to be new or cool ideas, they just have to be a project. Example: I wrote an app that crawls through all hundreds of articles in my company's CMS, tests every hyperlink that appears in each article, and dumps out a .CSV enumerating every broken link and which page it was on. I also wrote an app that scraped results from http://www.saltybet.com/ to help me make better virtual bets. My boss thought the Saltybet thing was way cooler.
- QA Tester: IDK; I'd say just start applying for jobs once you have some coding classes done. Side project is a bonus
- Program Manager: You already have relevant experience. Start applying for jobs after you take a coding class or two. Side project is a bonus
- Designer/UX person: Take a few more classes that teach you HTML/CSS. Take a website you like and design a better version of it. Make your design pixel-perfect. Include it in your CV. Same rationale as why programmers include side projects.
- Product Manager: You can start applying for jobs. I manage a team of Product Managers and would absolutely consider someone with a major in English, years of work experience, and a few coding classes under their belt for an Associate role.

Your degree in English is a plus; good communication/interpersonal skills are increasingly in demand (and still depressingly rare) in tech - that major + coding stuff on the side is an appealing combo.

Thanks man! This is super helpful.

Fozzy The Bear
Dec 11, 1999

Nothing much, watching the game, drinking a bud

oRenj9 posted:

Stats + Linear Algebra + python + SQL is about everything you need to get a data science job.

I have the math and stats already down.

About how long would it take average person to learn enough python for a data analyst job? I just started a free beginners tutorial.

print("hello world")

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


Do you have programming experience in some other language? If so, you can pick up enough Python to be useful pretty quickly. If not, it'll take longer.

Suspicious Lump
Mar 11, 2004
"Learn Stats" is such a nebulous thing to say. Any more info on what kind of stats to learn? What are good resources?

Currently undertaking the Data Scientist specialistion on Coursera and it's stats heavy but feels like I need more indepth study. Any help or advice?

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


There's some discussion in the data science thread. That has a larger audience than this thread does, so it might be a better place to ask for recommendations.

Suspicious Lump
Mar 11, 2004

ultrafilter posted:

There's some discussion in the data science thread. That has a larger audience than this thread does, so it might be a better place to ask for recommendations.
Thanks didn't realise this exists.

Seanzor
Mar 22, 2013

Fozzy The Bear posted:

I have the math and stats already down.

About how long would it take average person to learn enough python for a data analyst job? I just started a free beginners tutorial.

print("hello world")

Ewww, Python 3.

>print "Hello World!"

for life!


Edit: Has Python 3000 eclipsed Python 2.7 in popularity yet? I stopped paying attention after I became a Product Manager (typical, right?).

Edit2: For the record, it is right that print should be syntactically treated as a function, not a statement.

Seanzor fucked around with this message at 05:57 on Oct 5, 2017

Chadzok
Apr 25, 2002

You mean legacy python, right?
I heard about it. In the same conversation as MS-DOS and phrenology.

grenada
Apr 20, 2013
Relax.
For those looking to go the self-taught route: https://www.edx.org/course/introduction-computer-science-harvardx-cs50x

MIT also has an Intro course: https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-11

Harvard CS50 starts out in C, then progresses to Python, and ends with a bit of web development using the Flask framework. It is an awesome course for beginners, and really gives you a strong foundation. I've read great things about the MIT course. It is purely in Python, but I don't know much about it beyond that.

Coursera also has a couple of Intro to CS courses. Definitely worth taking a class to make sure you like programming before you put down serious money on a bootcamp or enroll in an expensive degree program.

grenada fucked around with this message at 12:49 on Oct 5, 2017

Seanzor
Mar 22, 2013

laxbro posted:

For those looking to go the self-taught route: https://www.edx.org/course/introduction-computer-science-harvardx-cs50x

MIT also has an Intro course: https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-11

Harvard CS50 starts out in C, then progresses to Python, and ends with a bit of web development using the Flask framework. It is an awesome course for beginners, and really gives you a strong foundation. I've read great things about the MIT course. It is purely in Python, but I don't know much about it beyond that.

Coursera also has a couple of Intro to CS courses. Definitely worth taking a class to make sure you like programming before you put down serious money on a bootcamp or enroll in an expensive degree program.

I highly recommend starting with Python - it is syntactically clean, making it much easier to get past the initial "wtf does any of this mean" barrier and start learning concepts, which are largely universal to any language. It's also plenty powerful and in-demand.

Example: crude basic addition in C:


main()
{
int a = 1;
int b = 2;
int c = a+b;
printf("%d", c);
return 0;
}


The same thing in Python:

a = 1
b = 2
c = a+b
print c



I also recommend Udacity. They have a larger course library now than when I started, but I took these two (totally free) classes, in this order:

https://www.udacity.com/course/intro-to-computer-science--cs101 (start: you've never written a line of code; end: you've built a web crawler and search algorithm comparable to what Google used to revolutionize the search industry)
https://www.udacity.com/course/web-development--cs253 (building a web application, taught by Steve Huffman [a creator of Reddit] - a surprisingly good instructor!)

Those two classes taught me all I needed to start doing really cool stuff (which helped me land a fantastic job in tech). There are probably better beginner courses now (maybe https://www.udacity.com/course/programming-foundations-with-python--ud036), but I haven't taken them.

JIZZ DENOUEMENT
Oct 3, 2012

STRIKE!

Seanzor posted:

I highly recommend starting with Python - it is syntactically clean, making it much easier to get past the initial "wtf does any of this mean" barrier and start learning concepts, which are largely universal to any language. It's also plenty powerful and in-demand.

Example: crude basic addition in C:


main()
{
int a = 1;
int b = 2;
int c = a+b;
printf("%d", c);
return 0;
}


The same thing in Python:

a = 1
b = 2
c = a+b
print c



I also recommend Udacity. They have a larger course library now than when I started, but I took these two (totally free) classes, in this order:

https://www.udacity.com/course/intro-to-computer-science--cs101 (start: you've never written a line of code; end: you've built a web crawler and search algorithm comparable to what Google used to revolutionize the search industry)
https://www.udacity.com/course/web-development--cs253 (building a web application, taught by Steve Huffman [a creator of Reddit] - a surprisingly good instructor!)

Those two classes taught me all I needed to start doing really cool stuff (which helped me land a fantastic job in tech). There are probably better beginner courses now (maybe https://www.udacity.com/course/programming-foundations-with-python--ud036), but I haven't taken them.

If you don't mind sharing. What profession were you in before doing these courses? What cool stuff did you build from those two courses? How long did the courses+cool stuff+interview->hired process take?

Seanzor
Mar 22, 2013

JIZZ DENOUEMENT posted:

If you don't mind sharing. What profession were you in before doing these courses? What cool stuff did you build from those two courses?

Super-late response; I'll try to make up for that with verbosity :)

When I started taking these courses, I had just transitioned from an entry-level telephone tech support/customer care gig to being the trainer of all new entry-level telephone tech support/customer care people.

Cool things I built after taking these classes (all of these were built in Python):

1. I built a tool that crawls all of my company's end-user-facing online help content, checks every hyperlink and image contained in each article, and spits out a CSV file that enumerates all of the broken links/images and which article they're from. This was a legitimately useful thing, as I was also responsible for maintaining our ~300 end-user-facing help articles, and links would break routinely for various reasons.

I later made this thing multi-threaded (take advantage of multiple processor cores simultaneously) to improve performance - overkill, but cool and I got to learn something new.


2. I built a web-based 'decision tree'-style app that was intended to offer troubleshooting steps for things customers would call about. So, like, you'd pick a common issue (e.g. "error code 12345 when printing") and it would provide step-by-step troubleshooting instructions that could branch based on results of previous steps (like: is customer on Mac or PC? > Windows XP, Vista, 7, or 10? > Do they have a networked, shared, or locally-connected printer?). This included a web interface that allowed admins add/edit/delete issues and their resolution trees.

This had a horrible UI and was never used, but was a fun excuse to build a cool thing and learn more dev tricks: like, I made the admin database updates thread-safe so that if two admins tried to change the same thing at the same time, the world wouldn't end; I also stored the database in a cache in memory to reduce database load. Both of these were total overkill for the scope of the project, but the whole thing was just a dumb excuse to learn new stuff, anyway. Dumb excuses to learn new stuff are solid gold when you're learning Dev skills!


3. Coolest and dumbest thing I built was a web app that tracked match results from https://www.saltybet.com. Warning - this will make no sense if you're not familiar with Saltybet:

My app built a match history for each 'fighter'. When a new match would start, a page on my web app would auto-refresh and show the match history of each fighter against one another (if any), and a comparative ELO-equivalent ranking of each fighter (to help inform a bet in the case there was no direct match history), which was generated using a dumb algorithm that I pulled out of my rear end, but was more accurate than random chance, so - good enough!

At the time, Saltybet didn't want people doing what I was doing, and took some (easily-defeated) efforts to prevent programatically knowing about the state of the game and mining stats from each fight. However, I noticed that a web browser watching saltybet gets all of this data. So, I built a Chrome plugin that ran on a 'viewer' client that just sat around watching saltybet all day and would intercept the:
1. the post-match JSON payload that contained the match results, which the chrome app passed to my server to be digested and stored in the match database.
2. The pre-match JSON payload that contained the names of the fighters for the upcoming match, which would also be fed to my server, and triggered the 'refresh' of the page with the stats on the fighters for the upcoming match.

(obviously, this was useless, but it was cool, taught me a bunch of new poo poo, and impressed my future boss when I later interviewed for an Associate Product Manager role).


JIZZ DENOUEMENT posted:

How long did the courses+cool stuff+interview->hired process take?

My personal answer won't be useful: I took a slow, unmotivated route, and have never done much professional software development; I got pulled more into the business/leadership side of things as a Product Manager.

But! I do have useful anecdotes. I know a couple of fellow entry-level tech support guys who started learning development the same way I did. Unlike me, they were motivated to land development roles. ~6 months after they started taking classes, they landed intro Dev/QA Automation jobs, respectively. Each parlayed their intro role into a fully-fledged role paying ~$80K after their first 9 and 12 months in those roles. It's completely insane - if you have an aptitude for development and enjoy it, it's an unbelievably good ratio of effort spent on intial education to eventual income.

Seanzor
Mar 22, 2013
Just to offer further encouragement: I and the two people I reference in my previous post all dropped out of college and had virtually no pertinent prior work experience prior to starting our careers in tech off of the backs of free online classes. Anyone with an actual degree in, frankly, anything will have that much more of an advantage.

BlackMK4
Aug 23, 2006

wat.
Megamarm

Seanzor posted:

Just to offer further encouragement: I and the two people I reference in my previous post all dropped out of college and had virtually no pertinent prior work experience prior to starting our careers in tech off of the backs of free online classes. Anyone with an actual degree in, frankly, anything will have that much more of an advantage.

I can third this, I dropped out of engineering and worked through some high end restaurants for a few years. Ended up picking up development as an interest again, spent 8 months writing code/reading/learning about 80hr/wk while working ~25hr/wk bartending. Asked a friend to get me an internship interview at a local company, spent two weeks interning before being hired on full time, spent two years there, now I'm 6mo into a new company. Most of the people I work with do not have degrees. I didn't take any courses. Github side projects and expressing a verbal interest in learning anything and everything is your friend. I am hungry, a lot of other devs like to coast, don't be like the other devs.

BlackMK4 fucked around with this message at 01:43 on Nov 10, 2017

Devian666
Aug 20, 2008

Take some advice Chris.

Fun Shoe
The following is something that edX is promoting at the moment. The courses can all be taken for free if you aren't worried about the certificates. Perhaps this may be helpful to someone.
https://www.edx.org/microsoft-professional-program-data-science

grenada
Apr 20, 2013
Relax.
How is the Johns Hopkins Data Science series on Coursera? https://www.coursera.org/specializations/jhu-data-science

Suspicious Lump
Mar 11, 2004
I've done several of Johns Hopkins Data Science courses. They're great but are not easy. They except you to be able to troubleshoot most of your issues you will come across. My only complaint is some of their "courses" are really dumb, like the first one. They also have a few that can be hotswapped if youre into biostats. My goal is to complete the whole specialisation. But a word of warning, most people (it seems to me anyway) use python for data science. But R is king for statistical analysis and data wrangling.

Mouse Cadet
Mar 19, 2009

All aboard the McEltrain
Next Stop: Atlanta

Suspicious Lump posted:

I've done several of Johns Hopkins Data Science courses. They're great but are not easy. They except you to be able to troubleshoot most of your issues you will come across. My only complaint is some of their "courses" are really dumb, like the first one. They also have a few that can be hotswapped if youre into biostats. My goal is to complete the whole specialisation. But a word of warning, most people (it seems to me anyway) use python for data science. But R is king for statistical analysis and data wrangling.

If you want to get an entry level job doing data sciency things, and you could only learn one language which would be better?

Also this would be my first programming language aside from SQL.


Suspicious Lump
Mar 11, 2004
Python...and R.

R is not a programming language. Well it is, but nobody learns R for it's programming side of things. They use it for the functional programming aspects, data analysis and computing. If you learn programming in Python and data analysis in R, if you ever join a workplace that uses Python for analysis then the switch over will be fairly painless. IMO It's not the actual words on the screen that really matter but the concepts. I helped someone on Reddit analyse something using Python + pandas but I had never used pandas. The syntax was somewhat different from R but the concepts were the same.

FYI I am not a data scientist (yet!) but I am working towards becoming one. Have a look around at future employers and see what they're asking for. Most companies in my city (Australia), seem not to care all that much about which program.

Fozzy The Bear
Dec 11, 1999

Nothing much, watching the game, drinking a bud
If anyone is looking for a recommendation, I've been watching the training videos by Mark Lassoff - Python 3 For Beginners Tutorial.

I have almost no programming experience, and this has been very easy to follow.

e:
Above posters: Think of R as more like Excel, you have to type in special formulas to process the data, but you don't have to learn a whole programming language to use either.

Adbot
ADBOT LOVES YOU

Mundrial Mantis
Aug 15, 2017


I am a trying to get into software and/or data science in my late 20s. I have a math MS and no previous related job experience. In terms of skills, I know Python, R, Java, and C++ along with doing some data science programs I did by myself. My biggest hurdle in searching for a job is that I am not good at networking and using the social aspect of Linkedin. My next big hurdle is raising my programming skills, which I find hard to motivate myself these days when it feels like it doesn't return anything. I have gotten interviews but that is where things end.

Any advice for how to get people to accept my connection requests and preparing for technical interviews? Networking and applying seems to be just invite/apply when in doubt but I really need to handle interviews better. The Coursera courses help but I don't know if they are enough. What can I do to mitigate having a math degree but not having a degree in data science or computer science?

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply