
Ask HN: How to deal with being overwhelmed when starting out - canibanoglu
Hello HN,<p>I'm a 24 year old student who started learning coding about a year and a half ago and have been spending most of my waking time on coding the last 2 months.<p>With the introduction out of the way, I was wondering if anyone could give tips on how to deal with the sense of being overwhelmed when just starting out. I have learned the basics of Python programming when I first started out and have been writing little scripts which make my life easier but apart from that I have no solid experience with programming.<p>Lately, I've been trying to get into web development and I finished the "Web Fundamentals" track on Codecademy. Feeling that I without putting what I learned to use I would soon forget everything, I bought a domain, signed up for webhosting and created a pure HTML and CSS website. (You can find it at http://howyoucod.in but please be gentle.)<p>Now I want to expand on the foundation but I feel very intimidated and overwhelmed when trying decide where to start. I want to learn JavaScript, I want to learn Django, I want to learn JQuery and loads of other stuff that I find out about thanks to HN. I have ideas that I want to bring to life but each time I try starting work on one I find that I have to learn a lot of new stuff.<p>Don't get the wrong idea, I love learning. It keeps me occupied and I get a rushing feeling of euphoria when I wrap my head around something new. But when I have so much to learn, it's a problem for me to decide on where to start. I've been thinking of signing up for CodeSchool as I believe that I can benefit a lot from their content and I've been thinking about finding a way to attend a dev bootcamp in the US.<p>I would really help it if experienced developers can point me in the right directions and give me tips on how to prioritize my learning objectives.<p>Thanks a lot in advance!<p>PS: Wow, the process of creating a new thread on HN was more nerve-wracking than I thought.
======
hoggle
This is an opinion: Go get <http://eloquentjavascript.net> and build something
useful in plain Javascript/HTML5 (no jQuery yet, it might harm your successful
picking up of the language!).

The fun part is that you can get started immediately: <http://jsfiddle.net>

For HTML/Javascript references you can always prefix your google searches with
"mdn" to access Mozilla's excellent documentation on all things web e.g. "mdn
html5 canvas"

If you feel like you really need some server backend logic look no further and
also stick to Javascript and checkout node.js (with express.js).

There will always be some new things on the horizon but don't get distracted
by the newest go, erlang, ruby, etc. based web framework and no not even
Meteor nor Derby even though they are Javascript based.

Plain Javascript (and node.js) are very much here to stay (and also fun!).

I guess my answer to your question is to really focus on a certain set of
technologies in order to acquire some deeper knowledge by constantly applying
it to something which actually gets used regularly.

In the end it's about helping/entertaining other people by shipping stuff.

------
jmathai
Don't worry about the higher level topics like JavaScript, jQuery or Django.
Determine a project you'd be passionate about building for yourself and go
from there.

You'll naturally start to need some of the higher level topics and you can
learn them then. Don't bite them all off at the same time.

For example, build an app that keeps track of your diet*. Do the frontend
first, make it all static. Learn HTML, CSS, JavaScript and jQuery. Those all
go together pretty well. Don't worry about anything more than that. No
Backbone, no Angular, etc.

Then write the API needed to provide and fill in the data to replace the
static data you used above. Then you'll learn Python and Django.

Most of all, take your time. This is a marathon and many of the folks on HN
have been doing this stuff for a while. You'll get there.

~~~
canibanoglu
I've been thinking about doing something like this lately but I assumed that
it would be better to learn Django right away instead of writing a script to
generate the static files for me. Thanks a lot for the encouragement!

------
lifeisstillgood
1\. Everyone gets overwhelmed by the sheer amount of stuff we don't know. Look
at it this way - when I started out I was seen as a bit of a JavaScript maven,
and have just spent the last six months realising I was a decade out of date
when I came back to it, and needed a lot of catching up

2\. Mentors - I would ask on here for anyone who feels they can give a bit of
time to keep you on track

3\. What are your goals - starting a business, love the computer vision world
and want more? Find one thing you love and can add value to and stick to it,
give it a year if its wrong fine. But in that year you will learn a hell of a
lot

~~~
canibanoglu
I would love to have a helpful dev who can dedicate a small amount of time on
mentoring me but I have no idea how to ask people for "donating" their limited
time to me. But I can see how immensely helpful that could be.

Building a business is not what I want to do at this stage, I simply want to
solve simple problems that I encounter in my life in a simple yet beautiful
way. Maybe the business part will come later.

------
jaddison
Spend a few days reading to discover what boils your passion in tech -
congratulations, you've found a good starting point... now focus on it until
you have a good grasp.

eg. Like the idea of a framework for web dev? Then read up on Rails and
Django, and be sure to examine the underlying languages. Which do you identify
with more? Dig into that one more. Join their IRC channels to get into the
community.

(of course, it doesn't have to be Rails or Django you look at - anything!)

The important thing in any problem is to break it down into manageable chunks.
Otherwise it all seems insurmountable.

~~~
lifeisstillgood
Personal point here - really in python I would steer clear of the frameworks
till wsgi is embedded in your head - read the pep 333 and webob and webtest
docs - now get your own wsgi server running inside say gunicorn and just work
out what's going on

I am sure that sounds overwhelming but ...

~~~
canibanoglu
It sounded overwhelming and after quick skims on some articles about the stuff
you recommended, it felt _very_ overwhelming! But that's good I guess, I just
have to push through the initial barrier most likely.

Thanks a lot!

------
ronyeh
Treat it like learning how to speak a foreign language (e.g., Spanish).
There's obviously too much to learn, and it is easy to become overwhelmed.
However, you can learn bits and pieces at a time. Just learn things as you go,
and as you need them ("just-in-time learning"). If you learn a new skill or
concept (e.g., OOP) make sure you practice it often so you remember it.

Over time, you will accumulate knowledge. Someday, you'll look back on today
and realize how much you've learned, but you'll still know there is so much
more to learn.

------
chamboo
Hi there. Just wanted you to know that you shouldn't be embarrassed/ashamed
about the stuff that you're putting out there. A lot of people don't want to
admit their struggles or often won't post something for fear that someone will
consider them stupid, not gifted/insightful, etc... These fears are illogical
and usually stem from personal views/beliefs on intelligence.

Especially if you were always ahead of the class in school, and could get away
with less studying than your peers, you are prone to this way of thinking. The
fact that you cannot grasp something immediately and innately may be
disturbing to your brain, and it will easily get overwhelmed by the sheer
scale of it all.

Just want to tell you that if you are able to recognize these fears/doubts,
and continue what you are doing in spite of them, you will reach your
destination. You are still incredibly young. I am 30 and not even to the point
where you are, congratulations. You have 6 years to fuck around before we're
on even playing ground.

It may sound stupid, but what has helped me deal with overwhelming emotions is
the fact that we can only be successful one day at a time. If you have a
successful day, then you are on the path to being successful at whatever
you're wanting to do. Even if you don't exactly know what it is yet.

Focus on having successful days, and eventually you will look up and be amazed
at what you were able to achieve. Also, realize how much time you spend
looking for those silver bullets-"Am I reading the right stuff, is there a way
to get there faster? Is there a better way?" These are all important to think
about, but they can also be used for reasons to do nothing, which is not a
good formula for success.

As one successful dev once told me, there are tons of ways to get there. There
isn't a better or best path that anyone really knows of. I know this isn't
what you want to hear, but it seems to be true. I think a lot of times,
worrying about finding the best way to get there is the best form of
procrastination. You fool yourself into believing it is better to find a
better way than to actually do something. I think the best advice when you
come to a point like this is to think of something you want to create and just
take some time off to learn how to create it. You may realize along the way
that there are certain things that you really don't care about learning for
the time being. If you look at all the different responses from HN users, you
will see that every response is unique. Some may suit you, but some won't. I
think it's really going to be up to you to find what you need and what you
don't. The only way to find out is to do the work.

Cheers, and I love the website you created. Keep up the good work and remember
to not be too self conscious about the stuff you put out there.

~~~
canibanoglu
I can't convey to you how good this post made me feel. It's extremely
reassuring to me that there's someone out there who feel the same way I do
about this stuff.

And the procrastination part made me smile. I keep trying to find better and
more optimized ways of learning something and I keep getting stuck at certain
points. Only after I've read your post have I realized that this was just
another way of procrastination (and perhaps the most insidious form of it).

Thanks billions and billions of times (hat tip to Mr. Carl Sagan) for the very
kind words and the motivation!

------
muraiki
I know exactly how you feel! Every day I read HN and bookmark a ton of stuff,
and I had been wondering how I'm going to go through it all. But what helped
me the most were two things:

1) I explored around enough to find the particular technologies and problems
that interest me. Basically I reflected upon all my bookmarks and tabs and
though, "this must be what I'm drawn to!"

2) Create a project to serve as the basis for learning. I had been spending a
lot of time reading and evaluating possible things, but I hadn't really sat
down and worked on a project. Not only does working on a project solidify your
knowledge, you will be exposed to new techniques as you solve your problem
which can lead you into other areas of interest. While you are adding more
things to look at, you at least have a path where your knowledge is
interconnected.

Here's how my own story has gone so far: I had taken the web development
course on Udacity (it's in Python and you learn how to make a simple blog and
wiki; I highly recommend it). But as I played around with things I realized
that functional programing mapped really well to the way that I solve
problems.

I sing byzantine chant, and realized that there's no standard and open file
format to exchange notation in. I got something working decently, but then
realized that at my current level it was a bit too big of a project for me!
But my point is that you should examine your hobbies and interests outside of
programming, because they could lead you to a particular avenue of inquiry.

Even if you don't "complete" your project, you will learn a lot in the
process, and it will give you a path to follow through a network of
technologies. And it also doesn't have to be something that nobody has made
before; I also play sax, so maybe something to help learn scales might have
been a more straightforward project. And if you get stuck on something that
somebody else has already made, you can always hit up Github to see how
someone else solved it. :)

While I put that project on hold, my friend came up with the idea to work on a
poker visualization program. He's a professional programmer so he has been
able to serve as a guide for me for things that I don't know much about, like
algorithms and statistics. After a lot of hard work and with help from him I
was able to get things working. The domain of the problem mapped well to
functional programming, and his desire to have it run in a web browser led me
to the right technologies (Clojurescript with C2 for visualization). So if you
don't have some hobby or interest that can map to a problem that you can work
on, see if you can find someone you know or someone online to help serve as a
guide.

That being said, one thing that I specifically recommend learning is version
control. It took me a while to wrap my mind around Git, but once I learned it
it has become indispensable for me. It lets me explore different avenues with
my programs besides creating 10 copies of the same file, and also lets me roll
back when necessary. This tutorial helped me out a lot:
<http://www.vogella.com/articles/Git/article.html>

I apologize if any of this is unclear; I'm recovering from a concussion so my
writing (and coding) hasn't been the best.

~~~
canibanoglu
Thanks a lot for the sympathy! I will definitely find and check out the course
on Udacity, sounds like it would be a good introduction.

As to coming up with projects, I come up with a lot of different projects,
usually projects that would give me the tools that I need and I can't find.
It's just that I always feel like I will be easily overwhelmed but I guess I
should just jump in and get over with it.

And you're right, I should definitely learn how to use git, I have been
postponing it but I'll make sure that I follow the courses on CodeSchool as
soon as possible.

Thanks again for the help :)

