|
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. 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.
|
# ¿ Sep 30, 2017 02:12 |
|
|
# ¿ May 18, 2024 10:05 |
|
Fozzy The Bear posted:I have the math and stats already down. 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 |
# ¿ Oct 5, 2017 04:11 |
|
laxbro posted:For those looking to go the self-taught route: https://www.edx.org/course/introduction-computer-science-harvardx-cs50x 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.
|
# ¿ Oct 6, 2017 01:59 |
|
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.
|
# ¿ Nov 8, 2017 06:51 |
|
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.
|
# ¿ Nov 8, 2017 06:56 |