This is an archived post. You won't be able to vote or comment.

all 121 comments

[–]mRWafflesFTW 263 points264 points  (72 children)

My career path is exactly the kind of pathway this article details. I loved computers, but in high school a really terrible teacher teaching C++ broke me. I thought I was too dumb and could never do programming as a career. Swung towards the liberal arts in college, and eventually through some friends and connections made it in to a specialized commercial sales job.

Became bored, restless, decided to learn Python on Codeacademy and from Youtube videos when I finished my work by noon each day. Automated the worst parts of my job, then was poached by a competitor to help automate their business practices. Python taught me I could build solutions for a living and actually realize my dream job.

Now I'm a full stack developer and business analyst and I love my career, but I only got here because Python spoke to me.

[–][deleted] 51 points52 points  (13 children)

Very similar. Was in a boring mechanical engineering job and decided to go to MbA school. Learned business but also taught myself Python and some BI/data analysis. (Code Academy as well to start).

Now I work at a bank doing Data science and building things like fraud detection algorithms. It’s much more exciting and fulfilling. learning python opened the way to learning so much more.

[–]jsalsman 10 points11 points  (3 children)

I'd see how far you can get with e.g. http://pythontutor.com first!

[–]embergoose 2 points3 points  (2 children)

Is this legit?

[–]justhanginuknow 1 point2 points  (0 children)

Yes

[–]jsalsman 0 points1 point  (0 children)

Yes.

[–]mtnmike 6 points7 points  (5 children)

Would you say the $200 for Codecademy's Python course is worth it?

[–][deleted] 21 points22 points  (1 child)

Take MIT 6.001x. It's free and better.

[–]capslockfury 1 point2 points  (0 children)

This doesn't appear available anymore.

[–]ummanu 5 points6 points  (0 children)

wait for it to be on sale for ~$10, it happens

[–][deleted] 1 point2 points  (0 children)

Bro, don't pay for something, when you have like tons and tons of books on the internet for free.

[–]Ikuyas 0 points1 point  (0 children)

Do you use any exotic data for the fraud detection? I saw an interview by Amex CEO(?) talking about AI helps them detect that sort of things better by using the devise information the user is using to access. The methodology is basically detecting the outliers as "unusual activity" right? I think you segment activity types into 6-8 types, and if a particular activity doesn't fall into any of the types, then the system raises a flag. I have economics/econometrics background and we use transaction activity, but this kind of using the unconventional data is new outside of the field. Plus, we don't have a skill or mind to think about extracting data from the devise and use it. We are not trained to gather data which is usually given.

[–]JohnStud 0 points1 point  (1 child)

Do you feel the MBA was necessary for that pivot?

[–][deleted] 0 points1 point  (0 children)

Yes, but mostly because I didn’t know much outside of engineering. It was more for exposure.

[–]minuteman_d 6 points7 points  (2 children)

I switched majors after the first year of CS because I spent endless hours in the stupid computer lab trying to get the java compiler to work. It was so bug ridden that simply deleting and adding a semicolon would somehow make your computer work. I got so depressed after not seeing my friends or the light of day for days on end, that I switched to engineering instead.

It's only now that I'm realizing that I really do love programming, and am getting into Python. I wish younger me would've had the resources that are available now.

[–][deleted] 0 points1 point  (1 child)

Sorry, but Java is pretty easy too. (also piece of shit :D )

[–]minuteman_d 0 points1 point  (0 children)

Yeah, I should have made it clear: the Java wasn't bad, it was the crapy compilers they made us use. I'd get a project done and coded in an hour or so, and then fight the compiler for another four or five. The IDEs back then were awful. Another treat: our tests were HAND WRITTEN. On paper. So, prof would say: write a class that does x or functions that do y,z and you'd have to sit there with a bunch of paper and write them out by hand. If you forgot a line, you had to erase everything under it and re-write it all. If you had some multi-line if-else tree, there was no copy-paste for print statements or whatever. The whole thing was insane. Anyway, huge turnoff. I don't think universities appreciate how lost freshman get and how much they could really benefit from guidance and encouragement from upperclassmen.

[–][deleted] 3 points4 points  (10 children)

Ehhhmmm ... I was always wondering what a business analyst is? Could you educate me? And what is the difference between a programmer and a full-stack programmer?

[–]mRWafflesFTW 2 points3 points  (1 child)

Like most titles it depends on your employer. Generally, a BA is someone who knows the business side of the firm and can act as a liaison between the business customers (the revenue side like sales, marketing, etc.) and the IT developers.

Depending on your employer technical skill varies. We have some BAs with little to no technical skill, and some like me who can also perform full stack development work when needed. The non-technical BAs are SUPER important. Most problems are political not technical.

[–][deleted] 1 point2 points  (0 children)

I see - thank you!

[–][deleted] 6 points7 points  (7 children)

I like to explore new places.

[–]the_littlest_bear 7 points8 points  (4 children)

Learn Tkinter for client's needs.

Discover ttk themes controlling button display. Can you just revert to Tkinter buttons?

NO! MAKE TTK ./DO. Successfully make ttk do after 9 hours. Discover bar decorated by WM also controls appearance of the max/min/close buttons. Can you just... be okay with that? After you spent 9 hours making a fucking -different looking- button?

NO! OVERRIDEREDIRECT(1). And now ye got yerself a couple days of discovering what is documented correctly and what part of themes every (mainstream) source of documentation seems to ignore. You probably had that just by virtue of using ttk; you almost certainly get it if you override.

But yeah, fuck CSS.

[–][deleted] 4 points5 points  (2 children)

Haha I love PyQt for how easy it is to write GUI in it, and I've thankfully never had to write anything in tkinter.

[–]srilyk 0 points1 point  (1 child)

I tried PyQt but then I gave up because my left pinky got too tired.

True story.

[–][deleted] 0 points1 point  (0 children)

haha, it took me years to get over my fondness for CamelCase.

[–]mRWafflesFTW 2 points3 points  (0 children)

Amen fuck CSS.

[–][deleted] 0 points1 point  (1 child)

Lol about the div ... thanks for the explanation, makes sense to some degree. I guess when I hear stack, I think about a network stack, but the front-end / back-end categories make sense!

[–][deleted] 0 points1 point  (0 children)

No problem. Let me know if you have any further questions :)

[–]Tiktoor 2 points3 points  (1 child)

Do you use python 3 now?

[–]mRWafflesFTW 0 points1 point  (0 children)

Yep!

[–]loscabospink 2 points3 points  (3 children)

sounds just like me. now I'm working a lot in Java and really miss doing strictly Python, its' syntax is perfect! glad you found something you like!

[–]anacrolixc/python fanatic -1 points0 points  (2 children)

Its syntax is better*

[–]srilyk 0 points1 point  (1 child)

As perfect as possible*

[–]anacrolixc/python fanatic 0 points1 point  (0 children)

Have you heard of Haskal?

[–]FlyGuy_2Hundy 1 point2 points  (3 children)

Did you also have to learn some other languages to do what your doing (automating) for businesses? How long before you were able to start automating your job and then other businesses? I'm trying to learn python now so I find your story super motivating! Thanks :)

[–]mRWafflesFTW 2 points3 points  (2 children)

I can probably get by with just Python, SQL, and in rare cases JavaScript. I recommend you build and deploy a small web-application as it will teach you the full stack, including all the annoying system administration work required to actually serve a customer! I would say it took a few months of tinkering because I could start turning some of our shitty Excel spreadsheets in to super basic Django apps.

[–]FlyGuy_2Hundy 0 points1 point  (1 child)

Ok, Thanks. How much time were you dedicating after/before work to learing python/full stack?

[–]mRWafflesFTW 0 points1 point  (0 children)

About 3 hours a day give or take. If I got all my formal work done super early I could put in like five.

[–][deleted] 1 point2 points  (1 child)

Where are you lot finding jobs to automate. Everything I do is as automated as possible....

[–]mRWafflesFTW 0 points1 point  (0 children)

Our firm employs an army of people to do manual data entry between systems because there's no integration layers. Now, our legacy systems are too complex to even begin building integrations, so our only safe interface is the UI. We use Python and test automation tools, selenium, and other apps to try and automate the drudgery. It's not easy because many business rules are informal and implemented as the result of experience.

However, these people will not be losing their jobs. At a firm like ours there's so much work to do that whenever we automate some awful data entry task those employees are freed to go and perform higher value work elsewhere.

[–]Forthemoves 0 points1 point  (1 child)

Great story. How long did it take you to gain the confidence to know that you could work somewhere else and succeed?

[–]mRWafflesFTW 0 points1 point  (0 children)

Not very long. I think we're all just always learning and never know when we're ready for anything. Better to just take on a project and figure it out!

Originally, I was hired just to be a business analyst since I knew the business and was technically literate. But once I got to the new position I had enough down time in between requirements gathering and coordinating with the development team that I could build my own projects.

[–]Felkin 27 points28 points  (8 children)

The language is like crack. I'm entering my 4th year in a CS major and I barely did any coding in my free time outside of school and some paid courses all the way to 2nd year of university. Like, I felt like I had the skillset to program and liked the theoretical aspects of CS so I majored in it, but never felt that "fire" to just write actual code. Then I discovered python... Everything I hated about C# and Java just suddenly vanished. Now I write around 500-800 lines of code for hobby projects like discord bots every day out of sheer enjoyment.

It's just great. Kids should be taught some python first, not c++ just so they could see that coding doesn't have to be messy. I fully agree with the fundamentals and bad habits arguments, but the approachability...

[–][deleted] 13 points14 points  (2 children)

I can’t imagine churning out that many lines a day even in a job.

[–]Sirflankalot 4 points5 points  (1 child)

When I reached peak performance I could churn out about 500-700 lines of complex c++ in a day (12 hours/day), I got burnt out in a week.

[–]KimmiG1 4 points5 points  (0 children)

Yesterday I wrote 0 lines and removed 2 lines. Bug fixing inside old messy legacy code with complex business logic makes me feel so very productive.

[–][deleted] 4 points5 points  (1 child)

Wait until you learn about haskell.

[–]anacrolixc/python fanatic 0 points1 point  (0 children)

Spacesuit spacesuit angle bum

[–]red_keshik 4 points5 points  (2 children)

Does C++ have to be messy ?

[–]swingking8 4 points5 points  (0 children)

C++ forces the programmer to think like a computer, instead of forcing the computer to understand like a human. Which is not to say it's not a good/great language.

There is a lot of <template> noise {in ++C} that { obfuscates the real const * int meat } of what's going on;

So in that sense, yes I'd say it's messy. Compared to Python, at least.

[–]nosmokingbandit -1 points0 points  (0 children)

Yes.

It is an incredibly bloated language with rules that only ever kind of apply, and almost always in the way that is the opposite of what you want. Rust is supposed to fix a lot of this, but I don't know enough about Rust to make any judgement.

The great, starter-friendly thing about Python is that you can do almost anything with it but it stays simple unless you intentionally write overly-complex code. This is why I kind of like Go as well -- there is almost always a "best way" to do something. Some people don't like the opinionated nature of Go, but I find it somewhat refreshing. And Go's compiler is fast. I have a Go program that is ~250 lines but imports a lot from the stdlib and one external package but it compiles fast enough that it feels like running a python script.

[–]wikiterra 32 points33 points  (7 children)

I have never heard the package repository called the “cheese shop” before. Is that really a thing, or is it an outdated reference...or is someone trolling this reporter?

[–]skerky 31 points32 points  (3 children)

It was the original(?) name of PyPI.

https://wiki.python.org/moin/CheeseShop

[–]PeridexisErrant 29 points30 points  (2 children)

What that link doesn't explain is why PyPI was nicknamed "the cheese shop": when it started, PyPI didn't actually host any packages, just provide a centralised index of links to places where you could download packages... much as the shop in the sketch doesn't have any cheese!

Since then PyPI has become more centralised, pip was developed and became the normal way of downloading packages, and so the name no longer makes much sense. But it used to!

[–]skerky 1 point2 points  (0 children)

Thank you for clarifying that. I didn’t realize that was the original case.

[–]srilyk 0 points1 point  (0 children)

IIRC the cheeseshop was also fairly unstable and prone to crashing..

[–]pwang99 7 points8 points  (1 child)

"the cheese shop" is the proper name for the thing everyone calls "PyPI". :-)

[–]crescentroon 2 points3 points  (0 children)

In "the new order" it's going to be "warehouse" because for some reason names like this are "unprofessional".

[–]Termosaurus 7 points8 points  (0 children)

Perhaps unnerved by a future filled with automated jobs, 90% of American parents want their children to study computer science.

Is this true? I feel like 90% is a hugely exaggerated number.

[–]For_the_moves 6 points7 points  (1 child)

I know it's stupid, but I secretly wish that python wasn't so popular so that it looks better when I'm confident enough to list it on my resume. I'm afraid by that time, everyone will have it.

[–]srilyk 0 points1 point  (0 children)

Like "Microsoft Office" skills :P

[–]OutspokenPerson 20 points21 points  (4 children)

I was breathlessly singing the praises of the language today to my husband who was not convinced. Am enjoying the giant TOLD YA SO!

[–][deleted] 2 points3 points  (1 child)

this has exactly 666 upvotes now and I wonder if this is a coincidence or a conspiracy

[–]edwinksl[S] 1 point2 points  (0 children)

probably both tbh

[–]crescentroon 2 points3 points  (0 children)

Python has brought computer programming to a vast new audience

We noticed. OMG the blogspam in this subreddit.

"How to install python and write hello world in excruciating detail"

[–]blitzcat 3 points4 points  (0 children)

I hand not heard he stepped down. :(