dutchrapley
Joined 20 years ago
Joined 20 years ago
Culture. The fact that it doesn't matter what the company says their culture is and that their culture is defined by the behaviors that they do and don't allow in the workplace. Culture can vary from team to team and department to department.
Deadweight. The organization is going to be full of dead weight.
Get ready to feel under-appreciated and under-valued.
When a company becomes a certain size, it's inevitable that you will hire people looking for a job.
Firing people sucks. Yes, it affects their livelihood, but having warm bodies on your roster affects your business.
The problem with people who have a job is that they affect company culture as they set the tone for acceptable and unacceptable behaviors in the workplace. It spreads like a disease and the effect can cripple those who show up to work.
Sometimes, this can lead to confusion as people who have a job might think, "I was doing what I was told. I don't understand why." Creating value is much more than simply following orders.
I use vim with a couple dozen plugins as my main text editor every day.
No matter which route you decide to go, work on some hard skills. Something. Anything. Whether or not you think you're going to use what you learn, what's important is that you're learning. If you start interviewing, you're going to eventually be asked, "What is something new you have learned?" It would be a great chance to pull out your computer and show them. Even if you land another role as a PM, it's going to be important to be relevant.
On a related note, someone I know was an IT Director. On the side, he started tinkering with Android development. I helped him learn how to use git. Eventually, he was laid off. The skills he learned helped him land a job at a decent sized company that I'm pretty sure you've heard of.
What makes python a good choice is that you don't have to spend too much overhead learning language syntax in order to implement concepts, and you'll easily be able to keep the learning of those two items separate.
Once you have a strong foundation in concepts, you can much more easily pick up a different language. The biggest downfall there is that if you decide to later learn Ruby or JavaScript, you might approach a solution as, "This is how I would do it in Python." Don't fall into that trap. Learn the features each language provides and how to use them.
Since you mentioned games, there's a couple of books on the topic that are free: http://inventwithpython.com/
Start networking. You never know who you might meet. You have a better chance at landing your first job through an acquaintance as opposed to answering a help wanted ad.
Start attending meetups, now. My top recommendation would be OpenHack http://openhack.github.io/new_york/ While you don't have a portfolio of projects on a website, you most likely still have them on your computer. OpenHack may be good place to showcase what you're working on if someone shows interest. Those projects also come in handy for when you start landing interviews. I always took a computer to job interviews to showcase what I was working on and even did some live coding. There's also another advantage to doing it this way: You are in control of the interview and I feel it's a much better approach than sitting through a Q & A with a hiring team. It says, "I came prepared."
For your first job, don't undercut yourself on salary. At least make enough to live. Even if you find a company is horrible, you can still leave yourself open to other options. You might even land your next job, doubling your salary, through someone you worked with and recently left said horrible company. It may take your 2-3 employers to get to your desired salary.
I landed my first job through a random conversation with a neighbor (before that I was college dropout and an office temp for two months trying to land said job). It paid $28k and half of my month's pay went to cover rent for a studio apartment. I ate PB&J and an apple every day for lunch. The job was copying text from Word documents and PDFs, marking them up with HTML. At the time, the company was building a hosting subsidiary. 2-3 nights a week, I spent 3-4 hours volunteering my time with that effort, through which I picked up Linux. I landed my second job through a previous co-worker. Every job offer I've ever taken started with an acquaintance.
My recommendation is to pick an area/skill set and focus on building that out. Looking at what you listed, I'd most likely recommend JavaScript for you. Take a look at a front end JS framework like Angular, Backbone, Knockout, or React. Maybe even try all of them out. Eventually, you might have questions. As you do, Open Hack might be a great place to get help and pick up a few pointers. As you become familiar with JavaScript, look to expand your horizons with a JS backend technology like NodeJS and look at exploring frameworks/platforms like Meteor, DerbyJS, or Express.
If you do decide to go the JavaScript route, here are some resources to get you started.
http://eloquentjavascript.net/1st_edition/contents.html
http://bonsaiden.github.io/JavaScript-Garden/
http://www.addyosmani.com/resources/essentialjsdesignpattern...
JavaScript: The Good Parts by Douglas Crockford
Secrets of the JavaScript Ninga by John Resig
JavaScript Patterns by Stoyan Stefanov
As a side note, some of the most brilliant people I've worked with didn't have CS degrees (Music, History, English, etc). Their key strength was that they were passionate about what they were doing and were constantly learning.
“Education is the kindling of a flame, not the filling of a vessel.” ― Socrates