

Ask HN: Am I ready to be a Python developer? - implicit_none

tl;dr:
want to be web-dev by June; have some experience building python webapp2 apps; trying to figure out what I should focus on between now and then to maximize possible outcomes<p>long version:
I’m a high school calculus&#x2F;engineering teacher in Fort Worth, TX; 2 years ago I took the Udacity webdev course hoping to learn how to build apps that would be useful for me. Since then I’ve deployed various webapps (maybe 20?) that have been incredibly valuable to me as a teacher and my campus; some are even being used by 100+ other teachers I’ve never met.<p>The problem is: I now love programming and web development and want to do it full time.<p>Almost all of my experience is on webapp2 + Jinja2 (an artifact of the Udacity course) + bootstrap and I know that I need to learn Django, which I’ve started to work through. My current tasks are: learn more about test driven development (something I wish Udacity taught on day 1) and work through implementing solutions to the problems in “Programming Interviews Exposed” (an awesome book).<p>But am I really ready? Up to this point I’ve learned things when I needed to: Need to take in money -&gt; learn Stripe; need to make it faster -&gt; learn knockout; can’t stand all this code just for memcache -&gt; move over to NDB; my brother laughs because my code has no unittests -&gt; learn what the heck is a unittest; add unittests, etc.; but I don’t really know what core competencies companies expect out of new developers.<p>My question is: knowing that I have a couple months to pick up a few more skills&#x2F;competencies, what would you recommend that I spend my time on, to maximize my hire-ability?<p>Thanks in advance!
======
gexla
Rule of thumb, you are never ready. Just go for it.

You have the will and the ability to learn on your own. That's one necessity
out of the way. You will confront things you don't know about every day. There
is no reason to load up on them before you actually need them. Once you have
the foundation taken care of (Python) then you can learn the rest on the job.

From here, it's basically all marketing. You need to learn how to sell
yourself. First stop, start collecting feedback as soon as possible. If you
are looking for a job, then start applying right now. You will start to learn
a lot from the responses you get back. If you are looking for freelance work,
then start hustling up some clients.

While you are looking, start doing whatever you can through social channels.
Get on Github and find some interesting projects that you can contribute to. A
perfect fit would be to find a company you would like to work for which
happens to have an open source project on Github that you can contribute to.
Locate the Twitter, Google+, Facebook, LinkedIn and other accounts of other
Python developers. Use that to find out other places these guys hang out. Look
for IRC hangouts as well as forums and other communities where you can get in
touch with people. Build your weakly linked networks. Get known. Make a bit of
noise. As people get to know you then they will think about you when they are
looking to hire someone.

Other things you can jump into? Javascript, CSS, HTML. Check out things like
Parse, Firebase and similar and build applications which don't even require
back-end code (or very minimal.)

That's great that you have released apps that other people use. That's a lot
more than a lot of other developers ever do. You are better than you think you
are. Now is the time.

~~~
implicit_none
Thanks - I had not even considered the bit on finding a company I'd like to
work for and start contributing to their open source stuff... makes perfect
sense.

Also "Rule of thumb, you are never ready. Just go for it" is basically the
best advice I've heard for essentially any new task; it's nice to have that
reinforced.

------
codegeek
"want to be web-dev by June"

Don't look at it this way. You can never be <xyz> by <date>. You just get
started. The question to ask will be "Will someone hire me to do web dev work
if I can present abc skills and blah experience/portfolio ?". Something like
that. Don't wory about June/July whatever.

\- What python specific technologies have you learned ? You say webapp2+Jinja2
whch is a great start. Take a look at other popular frameworks (Django,Flask
etc). I personally recommend Flask. It is a good balance in my opinion between
too much abstraction (Django) vs nothing (barebone WSGI) to pick up python web
development.

\- Do you/Are you building a portfolio to show your work ? Github etc ? The
best thing to do is to build sample apps and show people.

Things like these will help.

~~~
runjake
Let me translate for you. I suspect he's saying, as a teacher, that he wants
to be hire-able as a web programmer by the end of his school year (aka job
cycle).

But aside from that, this is just basic goal setting, and I find nothing wrong
with setting goals of "i want to be x by y". There may be setbacks and
failures, but the goals can be recalibrated based on those failures.

~~~
implicit_none
Actually both of these approaches make sense to me - I had read something on
HN in the past asserting that deadlines dramatically increased the
productivity of a particular startup compared to feature goals (as in: "We're
launching version 2 on Jan 1. with whatever we can get done before then" vs.
"we're going to incorporate XYZ in version 2, and we'll launch it when we
do")- so up to this point I've been considering June as a hard deadline. "I
need to get as much as I can get done by June" as opposed to "I need to go and
collect XYZ skills". Probably the correct approach is being aware of XYZ
skills and collect those first, but always having a looming job-jump deadline.
Thanks to both of you for your advice!

------
runjake
\- Figure out where and how you want to work. Let's assume you're going to
stay in the DFW area and that you want to get hired on somewhere (as opposed
to consulting[ _1_ ] or working on your own startup).

\- Look for local job openings on non-crappy job sites for Python web
developers.

\- Do some napkin statistics gathering on who's looking for what, and how many
outfits are looking for what (eg. what are people looking for in your area?
Django? Flask? Google App Engine? Learn the top of the list.

\- Bone up on HTML/CSS/JS/jQuery, how WSGI works, and more Django.

\- Come June, apply for jobs. Don't undersell yourself. Bust your ass on-the-
job to prove yourself.

Good luck and keep us updated. I am contemplating a similarly-risky move and I
have nothing but respect for you and confidence that you'll succeed. You
certainly sound like you have your stuff in order.

 _1_ I wouldn't hire you as a consultant because you have no industry
experience. Mom and pop shops might, though, but I suspect you wouldn't be
able to live off of it full-time.

~~~
implicit_none
This is a great list, thanks.

------
phantom_oracle
Everyone else provides some really good advice so far in this thread.

If you are looking for a suggestion on what to learn next, it will be test-
driven development. If you get this right (and because you've built 20+ apps,
it won't even take a month), you should be employable by April.

The biggest misconception people without developer jobs have is that the non-
dev-job guys assume that the dev guys have every skill memorized and mastered
to the tee.

Truth is that most of them are learning as they go like you are. New
technologies come out too fast for anyone to truly master anything these days
(eg. AngularJS frontend Ninja with 5+ years exp == that company is balls, move
on).

Good luck.

------
sejje
If you've launched 20+ apps, you're almost certainly ready to be a web-dev at
most shops.

------
rajacombinator
You already are one.

