Tuesday, December 30, 2014

It's Project Time

Wow, it's been only just over 2 weeks since I began the Rails section of The Odin Project, and actually just less than  a month since I started the entire course and I am nearing completion. Sitting at 84% complete, I have finished up all of the reading, and the only thing that remains is completing my flight booker app, the APIs projects, mailers, and then the final project.

That said, it could take another 1-2 weeks just to complete those projects alone (not sure). Either way, it feels great to be where I am at. Every line of code that I figure out in these projects is a huge advancement and teaches me a lot, while solidifying all of the things I have read up to now.

I don't know 100% for sure, but I believe that I can work through all of the remaining projects except for the 'Final' project by the end of tomorrow. The Final project (build Facebook) will be the difficult one due to all of the advanced associations and forms I'll have to build, which have been my speed bumps at the moment. That is good news however, because each time I break down a misunderstanding I am able to comprehend a broader range of the overall structure of Rails etc.

I wouldn't mind looking for some open source projects to contribute to after this. I am not sure what would be the best to look for, but I'll be keeping my eye out. Even if it is some minor changes, it would feel great to get that little bit of experience under my belt so to say.


Tuesday, December 23, 2014

Hitting some speed bumps, but powering through

Well, I am generally a very quick learner however the past few sections of The Odin Project has kicked my ass. I've been learning about and implementing User Authentication, cookies/sessions, and all of the security involved with getting that right. It has been difficult to nail down, however after completing the last project on my own with minimal searching I feel much better about it.

The good news, is that going forward I can use a framework such as Devise to handle those tasks rather than whipping up my own. I do feel good about understanding everything that is behind the system however.

I'm at the end of the first 'day off' here, and am working through Chapter 11 of RailsTutorials.org. This section is about creating user posts, and ActiveRecord associations which has been much easier for me to understand. On the other hand, there is quit a lot of edge cases where knowing where to look up answers will be useful (which I am fine with).

I have got my Trello board much more organized, and have a consistent tracking method for when I am completing various readings and projects, and I am leaving myself comments about how each part went when necessary. This will be great for me to look back on later and see how things went, as well as find out where my understanding of things has faltered and know perhaps why.

I am now 60% complete with Rails learning, and I hope by the end of tomorrow to be done with the Active Associate projects and maybe even the Advanced Associations / callbacks reading & projects.

Other than rails, I was looking up topics I will want to dig deeper into in order to solidify my chances of getting a good job afterwards. One of the main ones which keeps popping up seems to be a solid understanding of Algorithms. I've searched up a good collection of books and courses to check out once I give myself some time. If I can get through 1-2 of the books that I downloaded I think I will be greatly ahead of many other Jr Web Devs when you combine my other knowledge and experience I've been accumulating.

I finally did a few Exercism.io projects and found those to be entertaining. I have only done 3, so they weren't extremely difficult. What I did learn is that I enjoy solving problems :)

And...I DID get Super Mario Bros Wii U today. Although I haven't been spending any long hours playing video games (or even at all really) I have been able to enjoy it so far since the levels only last a couple of minutes at most, so it is a great relaxer in between my  2 hour study block sessions.

Well, we are at a long enough update for now. Still no word on if I got the job but I am 95% sure I will land it. Until next time!

Thursday, December 18, 2014

Another week bites the dust, hey hey!

Man, time seems to be flying right now. Almost all of my focus has been on learning web programming and I am just blazing through the content. It's getting harder to even be present at work however, as all I can think about is getting home to study.

Speaking of my work, let's go on a side tangent here for a sec. I may feel a little bit better if I can get this promotion that I applied for. A position for technical trainer opened up, and I was excited to apply for it. I did well in the initial interview, and was asked to do a 20 minute workshop in front of the entire trainer team. I have a lot of experience doing this, and am in no way worried about public speaking so I believe it went really well. I engaged them during the workshop and made them laugh etc.

I feel training / teaching people is sort of my 'calling' as it brings me a lot of joy. Even though building things and solving problems is the other side of the spectrum which I derive purpose (thus the programming), I have said already that once I get a bit better with it I will most likely come up with a blog, or learning course via Youtube etc that I use to express that knowledge and show other people things I find interesting.

Alright, back to my progress: So I have been using the Trello board here to try and be more organized about what I am learning. It is a LITTLE bit disorganized, as Trello isn't really used for this purpose and I was figuring out the best way to structure it, but the most recent stuff is done well IMO. I may reorganize the older learned material later.

Since my last update, I have actually gone through 42% of the Rails material. The SQL and Active Record section was a HUGE amount of reading. The amount of learning required to nail this down is enormous. I can totally see why though, and I think there is going to be a lot more bumps in the road before I get it down completely.

The thing that will be the real tell of if I am getting the hang of it however, is of course going to be my 'capstone' project that I create for my portfolio. I was at first going to do it right after the Rails section is complete, and then move to looking for jobs. Although I MAY still do that, if I get the trainer position I will feel a lot better about finishing the entire HTML5/CSS3/JS/JQuery sections and really touching up many more projects and beautifying my capstone.

Well, overall things are progressing nicely. Not much more to discuss. Once I get out from behind this massive wall of learning, I will most likely have more interesting discoveries and personal creations to discuss. For now, this blog is just me recapping on how much I've learned and where I am going forward.

Speaking of going forward: I may just leave this blog as somewhat of a personal log...and eventually create a more public website with things people might fight of interest to themselves lol.


Friday, December 12, 2014

Study fest complete. wow

Wow what a trip. So for my three day study fest I was able to learn so much. I PRETTY much got through the entire ruby language,  and two decent sized rails intro courses. Now I am ready to get into some real meat.

I have several projects that I want to do within the full ruby section on TOP. So while I may not complete every section or project since some of it will just be a rehash for me..I still want to spend time learning algorithms and some basic io stuff as well as getting into doing web requests  via the twitter spambot project.

Ill most likely be jumping back and forth between some ruby stuff and doing the rails tutorials. I also may modify the projects to render something pretty into processing framework just for fun and to show it off also. In fact, I may even just do the ruby projects in javascript to fresh up on my knowledge there. Its more about learning the concepts than the language that I use.

Im getting better at using vim and infact learned that I can use it within sublime. I do like sublime but imay need to compare it to something like rubymine which I just learned about.

Well, I am hoping by the end of the month ill be bery much closer to a solid understanding of what rails can do.

I had so much fun learning for 12 hours a day but it was rough. I took a few hours to relax and watch interstellar yesterday and I am already refreshed to keep learning more.

Monday, December 8, 2014

Progress Report - 12/8/14

Alright, 4 days later. I haven't had any actual days off but I have actually made some decent progress from reading, doing the simple courses, and working on things during my 3-4 hours of time at home. I am taking a day off of work today to do a full 3 day study-a-thon.

Last we spoke, I had just gone through the HTML/CSS section (I hate css, but maybe it's because I suck at it...I just need to study more people's code and solutions to positioning) As of now, I have already completed the Javascript, JQuery sections and project. I have gone through a decent portion of the Ruby reading material, and some of the Rails learning.

Oh, and in case it wasn't clear...I am talking about The Odin Project from last post. I'll be skimming through the majority of the Codecademy Ruby course, since most of it is extremely trivial to me being that I understand programming already. I just want to make sure I have a basic grasp of it, and then begin the projects.

My goal is to finish up with the entire Web Dev 101 section in the next 3 days. I have a pretty good feeling I'll complete it all before then, and get going in the full on Ruby Programming course. I'll reevaluate once I get there.

Let's talk tools!

I had a chance to play around with several tools, as I am looking for the right one. First I tried out brackets which I really do like...however there are some issues with the editor that I do not like. They don't complete braces / brackets for me which is a huge problem. The live update is cool, but I suppose more fancy for front end devs than anything.

I tried out Aptana, which has some really great and robust intellisense stuff...but holy crap the whole Eclipse framework it is built off of just...meh. You know what, I think I almost flipped my desk setting it all up. I spent some time screwing with things and I do like some of it, but it overall feels a bit bloated.

Now, I downloaded Sublime 3 and I have a feeling I may fall in love. I only played with it VERY shortly but the simplicity of what it does is SO GREAT for web dev. From what I understand (and have googled briefly) I can extend it a great deal to suit my needs. That is a good news because at the CORE it is an AMAZING editor, and is actually FUN to use. Great animations, fast, pretty. Yep. I'll consider purchasing it after the evaluation period if it continues to meet my needs.

Moving on...

Well, I am really happy with everything I am learning. I can't wait to start applying for jobs. One thing I would really love to do is some pair programming. That of course, is what I am missing out on is that interaction with people during my self learning.

I believe it would be a lot of fun if there was a service that put together screen share / video chat etc. in a way that you could do remote pair programming for example. Who knows, that probably exists.

See you in a couple of days!

Thursday, December 4, 2014

Killing it! Also much more knowledgeable!

Alright, so my past 2-3 days have gone quite well IMO. I ended up doing the Codeup tests that they sent me (check them out yourself!):

Well, I didn't feel that I did all that well but I was asked in for an in person interview. I got to check out the space which was pretty cool, and during the question portion I just COMPLETELY crushed it. The instructor mentioned that he never saw anyone complete his logic puzzles as fast as I did. Granted, I have some programming experience and I have just finished the algorithm course at Khan Academy. Most of the questions were based on understanding how variables and functions worked (assuming he would be speaking with a non-programmer). The puzzle he gave me was essentially to solve a sorting algorithm which I used insertion sort to complete.

Anyhow, the course is like 15K and I had just the night before come across The Odin Project. Well, needless to say...this is what I have been looking for all along. A great compendium of self learning material that I can follow to complete my gaps in knowledge. I have always been more of a self teacher anyway so if I can save 15K and become a complete BAMF by going through this material then so be it.

Aparently the creators say it should take you about 1000 hours to complete everything, however that is equated to grabbing all of the gold stars in Mario 64 for someone who has never played a video game in their life. After doing some poking around the webs, I came across this great post by someone else who had completed TOP from top to bottom. He addresses some tweaks to the program based on his knowledge and understanding (most of which I agree) including skipping some sections and spending longer on others.

He does a GREAT breakdown on the time it will take to get through everything, and so instead of 1000 hours I have pegged an estimate for myself at around 400 hours conservatively, based on that he said 254 hours should be the bare minimum of time. That puts me at around 3-4 months of study WHILE working full time (considering I can give about 35 hours a week to it).

I am okay with this time frame, as it STILL is quicker than waiting until Feb for Codeup to begin and then completing their 4 month course. So, worst case...I take 6 months and end up at the exact same position lol.

So what have I learned and what has been interesting to me in the last 2 days?
So far I have completed all of the Intro to web dev (section 1) and I'm about a quarter of the way through Web Dev 101 (just about to complete the project for HTML/CSS)

I learned about Trello. I had heard about it by reading a post from a guy who hires interns, that his team had built it specifically for their purposes. The interviewer at Codeup mentioned that they use it. I checked it out and it seems pretty cool. Would be much better for a team of people, however I wouldn't be hurt by trying to organize myself a bit more. If I can utilize it a bit more I think that would be good.

Going forward I want to really keep track of what I learn each week, and the time spent. I believe it would be a good metric / resource to look back on as well as to show other people on the same path, as...well that is kind of my thing! I really enjoy teaching others.

Who knows, maybe a year or so down the line I can upgrade / contrib to a project like TOP or create my own similar learning path for another stack.

Monday, December 1, 2014

Motivated? Yes. Scattered and Inefficient? Yes

So, I've been all over the place as of lately. I am having trouble nailing down a single stack, or even a language to dive into deeply and do a project in atm. I am currently switching back and forth between Java, Javascript, HTML/CSS, Python, and various other readings. As of lately, I really want to learn C# also now that it has gone open source and should soon be good to go for cross plat development.

Agh, well anyhow...I certainly won't get far bouncing back and forth as it won't give me a chance to lock down anything important in ANY of the technologies before I forget it. That said, my programming skills are certainly not going away themselves...it's just learning the syntax and libraries of a language so that I can actually put my knowledge to use. One thing that will remain constant across all of these backend techs is the need to work with HTML/CSS and some Javascript.

Back when I was just playing around with Actionscript for Flash I learned very quickly because I instantly began working on a game project. I didn't worry about different technologies, IDEs, platforms etc. I just wanted to make a cool game. The difference now is that I don't have that focused direction. I believe that is what I could use in order to propel myself forward. If I give myself something to work on, I'll discover whatever is necessary to get it done.

That said, I think I should probably spend a bit of focus in at least getting up a basic site that I can use in order to work with, and then go back to building up a project within a backend. I am thinking of sticking with Java for now since it is so universal and fast in comparison to something like Python...which is "neat" but which I don't personally find as exciting and fun to write in as other people.

On another note, as I am still skeptical on my ability to finance my way into the Codeup bootcamp...I am still going in for an interview this coming Tuesday. I was informed they have a special financing company that works with them so we will see how that turns out.



Saturday, November 22, 2014

Coding Bootcamp? I Wish!

I've been thinking hard about how best to go from some experience in coding, to landing an entry level job. There are hundreds of forum and reddit posts discussing the subject, as well as articles and books. Recently I have discovered "Coding Bootcamps." Essentially you dedicate a full working day or more EVERY day to learning how to program. Most are 9-12 week programs which give a guarantee that you will land a job within 90 days of completion making a minimum of 60K.

This is the type of learning I am most interested in. When I want to learn something new, I can't stand taking it slow. The idea of spending 4 years in a university JUST to get beginner knowledge of the subject is a dreadful thought to me.

I would pick up and leave for one of these camps by the end of the day if it was possible. Unfortunately I do not have near the resources available to do that. I did try to apply for some loans for around 8400 to pay living expenses but they are all denied. I really don't know how people can manage to do these things without already having a massive amount saved up or getting significant help from family.

Sucks, but that's life. Well that won't stop me from learning...it just means I'll have to figure out on my own what is best to study and give myself projects to work on. Also it will take a bit longer I assume, based on the fact that I can only spend 2-4 hours a day coding as opposed to 12-16.

The one that looks most interesting to me is actually one from where I live in San Antonio called Codeup They offer a "Master" program in addition to their 4 month bootcamp, which puts you in a similar scenario but with the goal of becoming an absolute guru in coding. I'll put that one aside as the dream scenario, but with maybe a 1% probability of me ever having the financial means to do something of that caliber.

Takes money to make money!

For now, I'll continue pushing along and doing personal projects while reading and coding in my free time.

Thursday, November 20, 2014

A quick look at Python

So, within two days time I have completely read over all 21 chapters of Program Arcade Games With Python and done several practice apps to get the hang of the syntax. On a side note, that course is amazing and very well put together so I would highly suggest it to any new programmer.

As the "Final Lab" for it, you are supposed to create your first functional game. I was considering doing this, although I don't need the practice in the same way a new programmer would. I have already developed much more complicated games.

Now that I have a feel for the syntax of Python however, I am not sure if I really enjoy it as much. I am all about efficiency and coding quickly but I think I am still more of a fan of Java. Perhaps you can call it a "First Love" since it is almost the same as Actionscript. Java improves on the things that sucks about Actionscript anyhow.

I like the type safety, and the way that Eclipse easily works together with it (not that it doesn't do pretty well with Python already)

 Another side note to the editor situation...I really wish VIM code complete was anywhere near as good as just using the standard editor within Eclipse. I even tried using eclim, but it just feels so slow and clunky. Obviously going back and editing text files etc can be easily done with VIM I am sure, but perhaps I am just not seeing the draw towards it that many posts are claiming.

Back to Python in that regard also. People are claiming fast dev time and prototyping so being an impatient and efficient minded thinker, it made sense to me to want to learn Python. That said, I know the job market is all about Java and C#. Python seems popular for small and indie companies for the aforementioned benefits of new dev.

I think I may make a pact to myself to occasionally do a Python app just to keep fresh on it, but I overall think it would be best at this point to focus now on learning Java in order to land a job as quickly as possible and get into a better position financially. Generally doing programming for money isn't the best way to go about things, but I really enjoy it from a hobby perspective too so it won't be a big deal for me.

So going full circle here, instead of the "Final Lab" idea in Python, I may just create something similar in Java, and instead come up with my own Python project idea. Perhaps create some sort of editor within Python for my Java ran game. That seems like it would be a better use it perhaps? But then again, Java has all of the GUI editing features right? Tough call, I'll figure it out. That's really all of my thoughts for now.

Wednesday, November 19, 2014

First Post!

Just wanted a simple blog to post thoughts and updates on. I'll add more later when I get a chance.

Currently a bit annoyed at trying to learn vim so much, and then I am ending up not using it all because the code complete sucks hard.

The code complete isn't much better for Python using pydev in Eclipse...but w/e. Perhaps I may end up using vim for Python dev, and Eclipse for Java?

In any case, I'm going to try and power through this gamedev in Python course from programarcadegames.com

I still have to set up some other things but I am slowly getting more comfortable with Linux, my editing tools, and finding the resources that I need.

I want to do so many things, but feel my time is very limited ... or perhaps I just get easily distracted. I am so into it right now that it is very hard to peel myself away long enough to do things like...go to the grocery store for food. That said I am at least being efficient and cooking meals for the entire work week via slow cooker / Quiche.

Well that's it for now. I'm going to post up my samples and what not when I make some. For now I'll do my best to at least get an elementary understanding of github so that changes can be placed there. Since I am using Eclipse it would be good for me to learn how to use it's git plugin.