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

Adbot
ADBOT LOVES YOU

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

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.

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.

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