Jump to content

Anyone learning programming?


Filip

Recommended Posts

Hi!

 

I've recently begun learning programming "full-time" about two months, with a focus on web development. So far I've done Codecademy's Python, HTML & CSS and Javascript, done most of Learn Python The Hard Way and am doing a couple Coursera courses.

 

My aim is to actually learn enough to be able to find an entry-level job in the field, and go from there. As you can see, I'm learning using online resources, and am really trying to avoid my country's god-awful state (higher) education.

 

I was wondering if anyone is planning to embark on or is currently on the same journey as me? I'd really like to connect up, I believe that the right company can be very stimulating while learning - and there's not much of it physically around me (I live in a small town currently).

 

Also, if there's anyone who is currently working in the field (be it Web or not), could you give me 20 minutes of your time? I have some questions on the subject, and I'd be very grateful to talk to someone who has experience. Maybe you could PM me?

 

Thanks a lot!

  • Upvote 2
Link to comment
Share on other sites

Hi Filip!

 

I'm a self taught web developer with mad skills in HTML, CSS, JS and PHP. (I built the interface for the FDRPodcasts browser).

 

I currently work at an online insurance company where I'm the Senior UI Engineer (although I keep changing that title for convenience). I'm not as successful as a lot of people with that title, but I'd be happy to give you my perspective from my experience.

 

I mentioned a bit about it in the recent video Stef did on finding a job. Here's what I wrote:

 

 

 

This is (in part) a repackaging of previous material in the podcast stream that I listened to a few years ago before job hunting, so I was able to put some of these principles to use. I got a much clearer picture of what exactly I was actually doing, and what employment really means.

I went from not being able to get a job at McDonalds to landing a job in web development within about 4 months.

 

I almost immediately landed one web development job, without even close to the necessary skills to perform the job at the level of the previous person. They did choose someone with more experience in the end, but I know the people who chose not to hire me now personally, and they said it was a very difficult decision for them. That was surprising to me, having had many bad interviews.

 

I now have by far the best job I've ever had and in the worst economy we've had since the great depression. I'm very grateful for the advice Stefan has given in this, and many other areas. The quality of my life has greatly improved.

 

Thanks Stef!

 

[...]

 

The person whose position I was going to be replacing in the job I mentioned (and didn't get), I interviewed with him and the operations manager in that first interview. I impressed him enough that he invited me to interview at the company he went to.

 

There were a few months in-between both interviews and I practiced writing code every single day in those months to learn the basics of the javascript and PHP programming languages. I had only known basic HTML and CSS up to that point (that I learned in high school).

When the next interview came along, I had time to learn a bit about the industry I was getting into and had a lot of new skills at that point, if only at a basic level.

 

I got hired and continued to study and learn outside of work, most days. So I quickly gained a lot of experience, and it's been over 3 years now and I'm still doing that.

  • Upvote 1
Link to comment
Share on other sites

So you went to the first interview with only high school HTML and CSS? I find that surprising - is that bravery and recklessness. So you managed to acquire enough skills in 4 months?

 

Thanks for FDRPodcasts! In my case, it has supplanted Youtube, it is a lot more convenient to use.

Link to comment
Share on other sites

So you went to the first interview with only high school HTML and CSS? I find that surprising - is that bravery and recklessness. So you managed to acquire enough skills in 4 months?

 

Thanks for FDRPodcasts! In my case, it has supplanted Youtube, it is a lot more convenient to use.

Glad you like it :)

 

And I actually had a decent grasp of HTML & CSS. I used to do that stuff for fun when I got home from school, and I was easily the best in the 3 semesters of website design I took in high school, so I probably had more experience than you'd imagine, but definitely I was under qualified.

 

I think it was more desperation than anything else. I wanted any job I could get, but I wanted a job in web development a good deal more. And to that end I developed a wordpress site with my own design, worked on graphics, flash and anything else I had a basic proficiency in to give a good representation of what my skills were, like a hastily thrown together portfolio.

 

And I was still under qualified when I finally got the job, but I was a lot closer having practiced every single day in the time in between. Code Academy was pretty puny at the time so I just tried to work on any projects I thought I might actually publish so that I could stay motivated to finish them and do the more tedious things that were required.

 

I think that one thing that is not said enough when learning web development is most people's thinking is completely backwards. They start with what they want to learn and find tasks/projects which facilitate that learning. That's not how web development jobs actually work, and you could very well be learning skills you'll never use and end up wasting a ton of time.

 

Rather, I think that you need to start with the kind of projects that you want to work on, and then as you work on it, discover what skills are required and then learn those skills in order to complete the project. That is, having the end result in mind, always, and don't change that scope of the project simply because you don't have the skill required, but actually learn them, even when they aren't fun.

 

Working in web development means you have to be a jack of all trades, in a lot of ways. If you are working on large teams where you never do wireframes/mockups, and you are not doing anything with the databases, you can get away with only knowing a few skills at a high level, but more often, you'll want to gain a lot of different skills that you wouldn't think you would ever be doing.

 

I work on a two man team. I'm the front end guy and he's the back end guy, but really I do back end work sometimes and he does front end work sometimes. We both do project management, but he does it a lot more. We both do templating, but I do that a lot more. We mix together responsibilities a lot, and the variety of the projects we take on kinda require that since they vary so much.

 

But also, web devs themselves vary wildly. Some only know simple design skills and know how to run a wordpress site and they can do a lot with only those skills and take on a lot of different kinds of basic sites. So, my advice applies more if you want to make large scale sites, do start ups, or make fancy things that someone else hasn't already done or can't be plugged right into your project.

 

Hope that helps! :)

Link to comment
Share on other sites

Good stuff! :) Yeah, the learn-as-you-go, based on what is currently needed seems like a very sensible approach.

 

To be honest, I'm having some difficulty figuring out what kind of projects to dip into (or where to find them). Do you have some advice on that?

Link to comment
Share on other sites

To be honest, I'm having some difficulty figuring out what kind of projects to dip into (or where to find them). Do you have some advice on that?

What kind of web developer do you want to be? Do you want to be a freelancer, lone wolf type who helps out small businesses expand their brands? Do you want to work on a small team? Large team? Do you want to focus on website branding and design? Like working with data?

 

In any case, I think a good first project is building a personal site of your own. And making it something that you'll be able to use, for real. Like have it be a place where you show off your work as you are figuring it out, or a blog where you talk about what you are learning. That way, you learn the important skills involved in getting hosting, attaching a domain name, working with files remotely, etc.

 

Here's an intermediate to advanced project: If you become comfortable enough with javascript and ajax (which is an important skill to develop, I think) then you can use your web inspector in your browser to find out where the HTTP requests are going in FDRPodcasts, so you can grab all the data you want from the podcast stream and develop a podcast browser yourself, maybe one built for mobile sized devices, or do something clever with the data that I haven't thought of. You can keep that in the back of your mind as you progress.

 

I use Chrome's web inspector constantly as I'm working, since I focus so much on building and presenting templates. If you aren't already familiar with it, it's by far the best way to debug things and make quick tweaks to projects you are working on. It's also a great way of seeing just how other people do things with their HTML, CSS and javascript. Becoming familiar with that will definitely give you an advantage over people who don't know how to use it.

 

Once you become pretty good at HTML and CSS, and that's something you can see yourself continuing to do, rather than focus on the backend, then I think that understanding page layout is important. You'll want to start thinking about your pages in terms of features, how to best layout those features for your intended audience, drawing up a wireframe and then, for extra points getting familiar with photoshop, and taking that wireframe and making it into exactly the design you want most. With all of that preparation laid out, executing the building of that page becomes much much easier and simpler to reason about.

 

I'm curious as to why you chose to take courses on Python. Seems like an interesting, unique choice of programming language :)

Link to comment
Share on other sites

What kind of web developer do you want to be? Do you want to be a freelancer, lone wolf type who helps out small businesses expand their brands? Do you want to work on a small team? Large team? Do you want to focus on website branding and design? Like working with data?

 

In any case, I think a good first project is building a personal site of your own. And making it something that you'll be able to use, for real. Like have it be a place where you show off your work as you are figuring it out, or a blog where you talk about what you are learning. That way, you learn the important skills involved in getting hosting, attaching a domain name, working with files remotely, etc.

 

Here's an intermediate to advanced project: If you become comfortable enough with javascript and ajax (which is an important skill to develop, I think) then you can use your web inspector in your browser to find out where the HTTP requests are going in FDRPodcasts, so you can grab all the data you want from the podcast stream and develop a podcast browser yourself, maybe one built for mobile sized devices, or do something clever with the data that I haven't thought of. You can keep that in the back of your mind as you progress.

 

I use Chrome's web inspector constantly as I'm working, since I focus so much on building and presenting templates. If you aren't already familiar with it, it's by far the best way to debug things and make quick tweaks to projects you are working on. It's also a great way of seeing just how other people do things with their HTML, CSS and javascript. Becoming familiar with that will definitely give you an advantage over people who don't know how to use it.

 

Once you become pretty good at HTML and CSS, and that's something you can see yourself continuing to do, rather than focus on the backend, then I think that understanding page layout is important. You'll want to start thinking about your pages in terms of features, how to best layout those features for your intended audience, drawing up a wireframe and then, for extra points getting familiar with photoshop, and taking that wireframe and making it into exactly the design you want most. With all of that preparation laid out, executing the building of that page becomes much much easier and simpler to reason about.

 

I'm curious as to why you chose to take courses on Python. Seems like an interesting, unique choice of programming language :)

 

I think I would rather focus on data, I find that part more interesting - design is not a thing I feel particularly talented at, but I like working with data. Working in a small team suits me best, I'm not so much a lone wolf type of guy.

 

Python came before I got interested in web design, I just decided one day that maybe programming would be a good thing to learn as a hobby, and I've read that it's not a bad choice for a first language. Also, plenty of introductory courses are in Python. Web design came separately, and I didn't know the two could be linked for a while. Now I know there's Django, but I haven't yet come around to it.

Link to comment
Share on other sites

And yeah, working out something mobile-friendly for FDRPodcasts would be a very worthy project, it's a bit of a hassle to scroll on mobile for instance. Which frameworks would I need to look into for that (so far I've learned a bit of JS and jQuery from Codecademy).

Link to comment
Share on other sites

And yeah, working out something mobile-friendly for FDRPodcasts would be a very worthy project, it's a bit of a hassle to scroll on mobile for instance. Which frameworks would I need to look into for that (so far I've learned a bit of JS and jQuery from Codecademy).

jQuery would be good for using XHR(ajax) to grab the JSON responses and working with the DOM (elements on your page). You could use a templating library like hogan.js, or an actual framework like Backbone.js to display the results of that ajax request.

 

Personally, I'm an Angular.js fanboy all the way, as a framework. (Technically, jQuery is a library and not a framework, despite them saying so on their website). Angular's learning curve is small at first, and then when you want to get into advanced things, the learning curve gets steep quickly, but it's easily my favorite of the javascript frameworks. Code School has several free courses on Angular if you are interested. (FDRPodcasts is built using Angular).

Link to comment
Share on other sites

jQuery would be good for using XHR(ajax) to grab the JSON responses and working with the DOM (elements on your page). You could use a templating library like hogan.js, or an actual framework like Backbone.js to display the results of that ajax request.

 

Personally, I'm an Angular.js fanboy all the way, as a framework. (Technically, jQuery is a library and not a framework, despite them saying so on their website). Angular's learning curve is small at first, and then when you want to get into advanced things, the learning curve gets steep quickly, but it's easily my favorite of the javascript frameworks. Code School has several free courses on Angular if you are interested. (FDRPodcasts is built using Angular).

 

Now I've got my to-do list  :D

Link to comment
Share on other sites

  • 4 weeks later...

I started Khan Academy's computer programming course about a year ago.  I haven't gone full-bore in pursuit of these skills, but I've decided it's a skill I'd like to acquire, and I'm willing to put in the time.  I don't know if it will lead to a career change, but I don't want my lack of knowledge in this area to prevent any doors from opening in the future.  I recently got a Raspberry Pi computer to apply my knowledge and experiment with.  I love the concept of the Raspberry Pi; the person that came up with the idea intended for the computers to be used to learn programming.  They are simple, cheap, and suitable for a multitude of applications.

Link to comment
Share on other sites

Hi Filip,

 

I'm a computer science student at a university and I also work on several internal web applications for a rather large company (not sure if I should put the name or not, better to be safe than sorry I guess).  First, I'd like to say that though I've learned a lot at school, and having a degree can really help with getting a decent job in this field, all of the knowledge I've acquired concerning developing web sites and web apps has been acquired on the job, outside of school.  You can definitely make it as a web developer without degree (though it can help).  My current and former boss have both been taught on-the-job and are great programmers and very good at what they do.

 

Now on to business.  To start with you should probably learn php, it's used on quite a few web sites out there.  It's not a very difficult language to learn, though the syntax is C-like so it looks quite a bit different that python.  The next thing I would suggest is that you familiarize yourself with some of the frameworks that are out there and the MVC (Model View Controller) design pattern.  There are a multitude of frameworks out there, some of which include Django, Ruby on Rails, Code Igniter, and ASP.NET MVC.  You mentioned you have learned python, so you might start with Django which is a python based MVC framework.  It seems to be pretty well built, though I haven't used it personally.  I use ASP.NET MVC at work (as well as Code Igniter).  Code Igniter is a simple but powerful php MVC framework you might want to look into if you start learning php.  .NET pops up quite a lot at various companies and I personally really like it.  It uses Microsoft's own C# language which is quite advanced, but you can pick up the basics of it pretty easily, and to be honest most of the really advanced stuff doesn't come up too much.

 

You'll also need to familiarize yourself with SQL databases as they are pretty much the standard form of database that websites use.  MySQL, or if you prefer to use Microsoft's tools (such as when you are using ASP.NET), MSSQL are two of the most common out there.  Other's would be Postgresql (which is quite good, I've used it before) and, of course, Oracle, which is popular with big companies.  

 

Lastly, some websites don't use server side code (python, php, ruby, C#), and are built just with HTML, CSS, and Javascript.  There are quite a few javascript frameworks out there you should look at when you get a chance.  Obviously JQuery and it's associates JQueryui and JQuery validate are pretty common (everyone uses JQuery, almost), but there are other, more full featured frameworks that are built with javascript.  Some examples include Telerik's Kendo UI (I use this at work.  It is awesome!), and Sencha's Ext JS.  These two frameworks I have mentioned are very powerful and combine JQuery with a set of widgets (things like the text editor we use to write these posts) and a validation framework (similar to JQueryui, but integrated better with the framework).  I should mention that both Kendo UI and Ext JS come in two versions, one that is licensed under an open source license (GPLv3 in the case of Kendo) and is free, the other is a commercial license that costs money (and comes with some extra features).  You'll definitely want the free version to start, but know that if you are building a commercial site you'll need a commercial license, which can cost >$1000.

 

Well that's all I can think of right now.  I know that's a lot of information to take in.  One of the things about building web sites is that there is more than one tool for the job.  Learning as many of these technologies as you can will make you more valuable to potential employers, but it can also take years to learn.  I definitely suggest looking at some of the frameworks out there and learn about the MVC design pattern.  I've worked on sites that have been built completely from scratch and sites that have been built using a framework.  The sites built with frameworks are much easier to work on, much easier to maintain, and much easier to expand with new features than the sites that have been built from scratch.

 

One last thing I just thought of.  At work we use pluralsight.com.  It is a website dedicated to providing training videos and other resources to various software developers.  The training videos on pluralsight.com cover a wide range of topics, everything from IT related stuff (learning Windows Server, Linux, etc) to developing desktop software, mobile apps, and web sites.  It is not free, unfortunately.  I think subscriptions start at $300 a year, but if you are serious about learning this stuff and you can spare the cash it is a great resource.  Have a look at the site, you should be able to browser the videos and see the reviews without having an account.

Link to comment
Share on other sites

  • 2 weeks later...

Hi!

 

I've recently begun learning programming "full-time" about two months, with a focus on web development. So far I've done Codecademy's Python, HTML & CSS and Javascript, done most of Learn Python The Hard Way and am doing a couple Coursera courses.

 

My aim is to actually learn enough to be able to find an entry-level job in the field, and go from there. As you can see, I'm learning using online resources, and am really trying to avoid my country's god-awful state (higher) education.

 

I was wondering if anyone is planning to embark on or is currently on the same journey as me? I'd really like to connect up, I believe that the right company can be very stimulating while learning - and there's not much of it physically around me (I live in a small town currently).

 

Also, if there's anyone who is currently working in the field (be it Web or not), could you give me 20 minutes of your time? I have some questions on the subject, and I'd be very grateful to talk to someone who has experience. Maybe you could PM me?

 

Thanks a lot!

The best way to learn in my experience 19yrs in the industry is to find a project & start banging out features. It teaches you real development and focuses your attention on achievable, tangible, market-tested results and eliminates wasted cycles.  Pick an open source project and people will gladly help mature you skills as well...

  • Upvote 2
Link to comment
Share on other sites

  • 2 months later...

It can be hard to convey to people (if you go the selfthought route) in the beginning when you have no references what your skillsets are.

What helps is to do like maybe a webpage with a list of what book you read and what kind of stuff you figured out yourself.  So people can get a feel for what you do, and of course there is reddit and freenode irc (channels #javascript, #linux, etc etc). Massive amounts of senior people there and also some job postings (not much but sometimes I see them).

Link to comment
Share on other sites

  • 4 months later...

Yes, hi! I know this topic is relatively old but...

 

I'm currently teaching myself programming full-time, too. I decide to start with Ruby using Code School, Code Academy, and Chris Pine's "Learn to Program" online tutorial which was completely amazing and easy to follow.

 

I have no real prior knowledge of programming save for a minuscule amount of HTML back when I was trolling forums in middle/high school so I feel like I'm starting all over from scratch despite my many years of overpriced education for a useless degree. 

 

I'm curious as to where you are now in your programming since you posted in March. Please update if you're willing and able! 

  • Upvote 1
Link to comment
Share on other sites

Yes, hi! I know this topic is relatively old but...

 

I'm currently teaching myself programming full-time, too. I decide to start with Ruby using Code School, Code Academy, and Chris Pine's "Learn to Program" online tutorial which was completely amazing and easy to follow.

 

I have no real prior knowledge of programming save for a minuscule amount of HTML back when I was trolling forums in middle/high school so I feel like I'm starting all over from scratch despite my many years of overpriced education for a useless degree. 

 

I'm curious as to where you are now in your programming since you posted in March. Please update if you're willing and able

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.