Wednesday, October 12, 2016
How I Taught Myself To Be A Programmer
so I've had a few questions about how I actually taught myself to become a
programmer and I just want to take a moment to kind of address how i did that
i went a little bit of an unconventional way because i never went to school to
learn to become a programmer I've actually never taken a computer science
course at all
and don't get me wrong I'm not here to say that like what i did was right and
going to school is for his stupid or whatever because i don't agree with that
at all in fact i wish i would have gone to school but now everybody's path is
different in life and now i'm with my particular case I mean I went from you
have been a truck driver I've delivered pizzas and I've done plumbing and hvac
work and I've done all kinds of different professions
I was one of those guys who had to fix my own car so I would teach myself how
to do that on YouTube and I mean I did things like transmissions and rach
opinions and all kinds of horrible repairs that I had no idea what I was
doing but I taught myself you know through the through the channels
available on the internet so i think that the Internet has definitely you
know created this new revolution of this information which is crazy i'm and
unfortunately a lot of people take it for granted and they don't they don't
use it to their advantage in fact that you use it kinda to make themselves
stupid in my opinion and a lot of cases and the people that just tweet
everything or just constantly commenting whether their lives on facebook and
saying stupid things that they should never say in front of your respective an
important perspective employers and bottom line is that i use the internet
to actually be able to teach myself how to program so i started off with a CSS
really before i even jumped into CSS i decided that i want to be a web
developer and this was around two thousand nine or so
so Facebook at that point was like blowing up and when I looked at facebook
i'm like all I can build a better website and Facebook and you know not
knowing anything about what i was talking about a idea had this like
ambition and this dream really my dream drove my ambitions and you know that's a
huge thing I think starting out if you're going to teach yourself because
you have to be disciplined and probably the greatest asset will be determination
so that you don't give up so you let yourself believe that you can build the
next Facebook or whatever it may be to actually get you to where you want to be
that's my probably my biggest advice for for having them to learn something like
this because it's not going to be easy at all so i decided i want to build this
out music website and then I ended up using Adobe Illustrator where I was
actually drawing out my templates and i got like you know basically my homepage
what I wanted to look like and it looked really good and everything so that my
next step was i okay i need to learn basically the the styling language of
the web which is CSS stands for cascading style sheets so i started with
that actually started with a CSS 3 . notebook I can't even remember what it
was called though i think it was called the hidden manual actually I'm css3 . of
the hidden manual
that was a great book in fact that was probably the best book I've ever had and
any programming language at all because I tried CSS I believe in other books and
even going online and stuff like that and I just couldn't figure it out
and a lot of people might blow CSS is easy but you'd be surprised I work with
a lot of people I've worked with a lot of people in the past that really don't
know CSS and all I mean they find it very difficult so CSS on its own can be
very difficult so when you're first starting out I mean don't think it's
just going to be easy
some people might say it's easy some people are in a sense it's like
impossible
the balances in between there somewhere so everybody learns at their own pace
and I don't think it's anything that's that's just easy to pick up if you have
no
kind of background in programming I mean how you don't even understand how it
browser works and what a dom tree is a lot of stuff i mean you're just like you
barely know what a selector is and in fact even like you have these words like
selector and grandfather and children are 17 just like you're trying to make
sense of it and it's just weird you know it's weird coming from non programming
background
so long story short there i am I ended up moving from CSS / - javascript jquery
and i was at this cross words were more jquery was popular and a lot of people
were like well you don't even really need to learn JavaScript anymore you can
just learn jquery so just pick up on that and that's kind of where I picked
up because i was I don't want to learn JavaScript from scratch if I could just
use jQuery so jQuery makes a lot of things very easy and little things you
need to do like hide and show stuff so i still recommend that somebody probably
look at jquery even before
javascript if they're really looking to hit the ground running if you want to
you know be a next level web developer and get into like angular and react or
something like that then i would say probably focus a lot more on JavaScript
but for simple web development I mean it's still about jQuery and jQuery
plugins and I'm even now so that's not bad advice at all there
so jQuery was a struggle for me
not understanding scripting languages or functional languages like JavaScript and
and then not really understanding what a javascript library was or how to create
my own I just basically kind of lock box turn our guests my way through how to
get things to work in jquery and and in every part of this path was just
painstaking but you know probably six months into my development i was
actually building real web pages
you know that did stuff but you hover over a navigation and drop down or you
click this and it showed you know hidden data and stuff like that and and it
looked pretty because i was using templates and stuff that existed
nowadays we have you know bootstrap so why learn CSS from scratch when you can
just kind of learned bootstrap way but if you truly want to be a really good
developer a full stack developer you
you have to know CSS in bootstrap does not solve all your problems and so after
jquery and then ended up moving on to a language like I need a server-side
language I need something to be able to run on the server to be able to take
data to interpret what needs to be done and and you know and what the display
and things like that and i started off with pearl for some weird reason i
thought pearl would be a good idea at the time Pearl was still like you know
touted as like the Amazon language and it's still have much had a bigger
following than what it does now and it still has a decent following it's just
it's been falling off the map because of languages like Python really taking a
lot away from it but I started with pearl and and the problem with pearl is
that it you can do like everything you do in Pearl there's like 10 different
ways of doing it right in the community is not nearly as strong online at some
of the other languages I've dealt with and this is before even stack overflow
was blowing up in popularity
so getting getting information on how to accomplish a certain task and Pearl was
like really difficult because pearl is one of these languages where you can try
to make things all on one line and this creative as possible and like basically
you make it is almost like it's almost like there's an entire mantra of its
cool to make your code so unreadable that nobody else including yourself is
ever going to figure out what the hell you just wrote
so it's very very difficult for newcomers to come along and look at that
kind of code and and be able to be able to expand their skills basically because
my issue was that that you know you have to do something over and over again
especially in programming for it to make sense and become second nature and
remember how to do it the next time you need it and with pearl
every time I have to go back and I ok how do i do a for loop how to open a
file or do this or chomp and you know i had like every time I went to a
different website or whatever there was like some other way of doing it so
and that's you know pearls whole you know nature is that there's more than
one way to do it and i ended up getting frustrated and I ended up moving over to
python so i started with them
my learning python and it was like 5th edition with a mouse on a huge book and
that was probably the second most implement when influential book that
I've ever had in my programming career because you know he immediately the
author immediately jumped into the entire you know python vs pearl which is
to be a big debate that you know pearl dominated python all through the
nineties but then end of the two thousand and especially now once the NBC
like Ruby on Rails States came along
python just ate pearls launching as far as you know getting a community growing
and everything so I'm he immediately address out in the book which i thought
was cool because it was coming from pearls i do you know but he wasn't
bashing pearl and saying use Python like that you gave it is completely unbiased
review of the two different languages which I thought was really cool so I
just with python things were just so much easier how do i open a file how do
i read a file line by line
ok now i'm looking for a particular piece of text and python
okay i need to use regular expressions and granted in case you any programs are
out there
pearl regular expressions are better than Python I understand that pearl is
better at regular expressions in any other language since they invented it i
believe at least revolutionized it but with with python is everything made
sense if I didn't understand how to do something i would go online and there
were you know somebody would have some you know highly regarded way of
accomplishing something which they refer to as pythonic and and it just made
sense so Python instead of you know there's multiple ways of doing it and
pearl there's just one way of doing it in Python at least one right way and
they call that the pythonic way so I embrace that especially as a newbie
coming along trying to figure this stuff out I mean I don't need your craftiness
and and cuteness when I'm trying to learn how to do something in Python was
just you know it required that I indent my code to make it readable not only for
other people but for myself
and the community was it was blowing up at that point too because the tangled
web framework was head and was just getting you know getting getting popular
and other python frameworks were springing out and i remember i actually
got involved in on like I started with Jago Locke shall jump to that now so
after i had gotten python down enough i started with like python scripts right
so i would build a single python files that would become part of complicated i
mean my code was so sloppy i had i think i had one python file one time that was
like sixteen thousand lines of code or something some ridiculous thing like
that i mean my editor with crash my brought my Python code
it was this big as complicated scraping program that just went from like not
even function the function like it was just like in a straight line blah blah
blah
like all the way down like it was not robust the slightest thing broke it
I don't even really remember what i was doing and i know i was taking data from
the web and then parsing that data and then storing that data and oh my god I
wish I I wish I would have to save that program either
I don't even know if i'll show you guys I'd probably not be I probably too
embarrassed to show you guys but I'd like to see it myself because I mean
that would have been just atrocious and this was like four years ago five years
ago something like that i think it's like five years ago around that and I'm
and that's a good thing too when you're a programmer like you notice
month-over-month how well you're growing and and you can just see changes
yes sometimes shorter as a month your you you've seen that you've grown
unfortunately probably also forget that or fail to see that we forget some of
the things that we've already learned as well because there have been times that
I go back and have to learn something again i'm usually quicker the second
time around but there you know you do you do lose information if you're not in
into something day to day
so after you know building these these programs to collect all this data
I needed to build a website and and that's when I ended up jumping in the
django Django i found was like really complicated
there's just so much to it
and I'm just even trying to grasp like how its modular base like it's all about
components and python and django and you know like these apps that you build your
supposed to be self-contained I just never I couldn't really grasp that you
know it's like i didn't understand how anything could be self-contained I
didn't even really know what self-contained mint and and programming
so i ended up jumping to another web framework for a while which was a web 2
pi
I'm and I was really i actually had a decent relationship with some of the
founders like Massimo and I'm still friends with on Facebook and there was a
few guys on his team that we're just very very helpful guy in bernal and i
really like their framework in fact I know I probably should have stuck around
a little bit longer but i ended up jumping back to django at some point and
i never really looked back because you know after I did that
like I was able to get my apps in the Google App Engine from there i built a
site built the music website and built in movies website and I build all these
different types of websites i ended up getting you know the full time
programming gig mostly as a UI guy up front because my javascript and CSS
skills were better than a lot of the people that I worked with so and that
was you know without any sort of training whatsoever and i found that
stuff to be easy at that point I was more you know struggling with like
server side and different programming philosophies and and things like that
and when you design structures and so and i'm still kind of expanding on those
parts i think my career now so I mean that's really that's really the story I
mean though the whole the whole bottom line is that you need to have dedication
and that's probably the most important thing because none of this stuff is
going to be easy programming is not easy the smartest people in the world don't
simply just learn programming like it's nothing i mean they don't just learn it
overnight
you're going to make the mistake of thinking you know more than you really
do and I think that as you become a better programmer at least in myself
I've seen that I don't know everything in fact my confidence level now is
probably lower than
mom I wouldn't say it's like lower into ever been but i'm very very restrained
as far as what I feel like I'm capable of that I feel like I'm a good developer
lot of times I look at other people around me on my only a night
I code for fun these guys you know they don't code it all for fun and and and I
think that shows a lot but I don't let it get to my head because it's a
constant everyday struggle to be a programmer as far as I'm you know trying
to make sure you don't get you can print out and then just recognizing that you
don't know everything and that there's always something that you can learn from
somebody else in and even if if you don't see that they have you know that
the more modern skills you have I mean if they've been in the programming game
for a long time maybe they have a lot of information about a lot of important
things like your writing requirements are making sure that you know all all
requirements are reviewed you know thoroughly for mistakes or giving
accurate time frames and all that stuff and I mean that is that is all part of
being coming a programmer as well but you're really not going to get that kind
of expertise until you get into production gig and one another important
thing too is a unit testing I mean now unit testing was like never on my plate
when I was getting started and now I mean you'll get you get laughed at me
you got a unit test your code I mean it whether it's in JavaScript or even our
seats sharp reply that you should be unit testing everything
django has this whole unit testing built into their apps i mean they create a
test file for you but I mean a lot of the django people i was talking today I
mean they never going to use them and I wasn't using them either so like it's
really not a good idea but you got to take things one step at a time
and it's easy to get overwhelmed i think so that's my story guys I mean I started
basically what is the website HTML template to draw a template make that
template in the real code using CSS HTML javascript and jquery or whatever sort
of library you want to use then it comes time to doing a server-side language
it might be best to actually learn the the language itself you know doing what
would I did like you know building a little scraper scripts and things like
that and the self-contained little programs before moving on to like a
giant MVC application like Django or ruby on rails or something because
there's a lot of magic going on underneath the scenes are about behind
the curtains on with a framework like that so you're not going to know any of
it getting started and it can be
maybe too daunting for some people and maybe turn them off of the entire idea
so you got to keep things small but once you're ready to go into the framework
then you need to also learn the other stuff that goes along with that ok how
do i set up a cloud host you know if I'm doing a linux server how do i setup my
ports and my firewalls and how do i setup my database and and then i need to
actually set up a web server am I going to use apache or nginx and then maybe i
use both
and yeah and just I mean say there's there's a ton to a man but just one one
thing at a time and eventually you'd be surprised at how far you've come
so anyway guys I hope that give us some sort of insight into what i did I mean
that whole process took me a year so i'm still learning every day and I'm just so
thankful to be in this gig though I mean I like being a programmer and it's fun
and i would recommend it and programmers get paid pretty well
our guys thanks please to try and have a good day