Showing posts with label career. Show all posts
Showing posts with label career. Show all posts

Sunday, August 24, 2014

Coding and Stuff...



Last week, I started getting a little bored with programming in just ruby, so I decided to go back to learning a few other languages. I watched the Google Class on Python and I picked up the Code School Objective-C tutorial, again. I find that studying other languages gets me a away from the syntax of the languages and more into the larger concepts involved in programming. In the beginning, I just thought that you should just learn one language and get really good at it, and then maybe pick up some others a little bit later down the line. What I have found is that once you think you have a decent grasp on the basics of one language, it's productive to pick up another language, with the same paradigm [i.e. object oriented, symbolic, functional...]. This is works for me, because it forces you to really understand the concepts involved, it breaks up the monotony of studying the same thing over and over, and, pretty much, without fail, every author brings a unique perspective which leads to new insights on programming in general. Recently, I've had a chance to start reviewing the code of other programmers who are just starting out and it's made me realize how important it is to learn to actually program versus just being able to code in a language.

Speaking of which, I heard back from the company that I wrote the Mars Rover program for and I am happy to report that I have done my telephone interview and will be visiting the main office next month for the final stage in the process. I think that I am a very strong candidate for this company and I am super excited about the prospect of working there. On Friday, I went to the Atlanta office and meet one of the developers there. He was super cool and made me feel really good about the job and my chances of actually getting it, so...that was positive. Among the things that I love about this company are lots of travel, flat management structure, the fact that you have a voice in the things that you work on, and the people working there are "my type of people."   I can't wait to go up there. My entire experience with this company has been awesome. I can't think of a better place to be for my first, possibly only, programming job.


Which brings me to: I just started learning Java. I have to learn Java for Algorithms I, as well as for this new position, should I get it. The algorithms class starts next week, but if I get this job, they will also teach Java in training. This will give me a leg up for the job and also allow me to develop mobile apps for android, which is something that I'm definitely interested in.

Java is an object oriented programming language, so it's not a big departure from what I already know. The syntax and the things that it requires, such as the requirements for declaring variables, are a little bit uncomfortable after starting [restarting] my programming education using ruby and python. I'm pretty sure that I'm always going to prefer ruby and python to any other languages, but I'm learning to appreciate Java and at the end of the day it's more about the applications and building cool stuff.

Friday, August 15, 2014

The Mars Rover Project



Last time I posted, I was talking about upgrading my professional marketing materials, i.e. LinkedIn, because one of my friends told me about an entry level programming position. Well, they contacted me the next day and the interview process has begun. My first tasks are to watch a video, fill out a questionnaire, and choose one of three programming problems to solve. There were three choices, the first was one involving a transit system, the second was one that calculates taxes and tariffs on goods and prints out a receipt, and the last one was to write a program where you hypothetically help NASA track rovers on Mars. I think we all know which one I picked. :)

The first one, I skipped, because writing a program about a train system didn't interest me enough to stop there and the second one wasn't that exciting to me, plus I have two other friends in the process who are both doing that one. The last one was right up my alley: writing a program to plot the position of Mars rovers.

I love astronomy. The extreme speeds and grad scale of the universe is one of the most fascinating things that I can imagine. I took several astronomy classes as an undergrad and since then, I have kept up to date on most of what's going on in the field. So naturally, I jumped at the opportunity to pretend like I had a job with JPL. I've already started working on it and I am thoroughly enjoying it. When I first looked at the problem, it seemed a little bit overwhelming, but it is way too interesting and fun to not do it. Once I started working on it and breaking it down into smaller pieces, it became manageable and much less menacing and it is starting to come together.

I hope that I never stop getting excited when I get my programs working.  I like puzzles and I do many different types of them, but I never find myself getting extremely pumped because I solved one. It's way more fun to code. Don't get me wrong, I do feel satisfaction in completing puzzles, but when I make programs work, I get extra excited. It's more like scoring in sports, than solving a puzzle.

... I guess you had to be there.

UPDATE: I've watched the video and turned in my program and questionnaire.


Wednesday, May 28, 2014

Advanced Ruby Features



I have decided that buying a mac is going to be unavoidable. I never thought that I would own a mac, but Windows 8, their lack of interest in what's best for the user, and the inability to create apps for iPhones and iPads make owning one a necessity as a developer. Windows 8 even blocks you from running Ubuntu side by side with it and I'm still trying to decided whether or not I want to add this third party software to my system that will allow me to to this. [it's been 2 days] I'm seriously disappointed in Microsoft...shopping for macs online today was so depressing.


Two weeks ago I went to Octane and there was this chick there with a mac 
who sat on facebook for two hours...all of my nope, every bit.


I've been taking it kind of easy on myself this week, I think. That last chapter was a little bit taxing, interesting, but taxing. I had to take my time and take it in pieces so that I could retain as much as possible. The chapter that I just finished in my book was about advanced Ruby topics [whew!].  It took me a few days to get through it, just because I was trying extra hard to take everything in [probably not the best idea ever]. This is probably one of those chapters that I'm going to have to go back and read again...and again.  My favorite topics were probably the ones about Win32API and win32ole. I'm definitely going to have to learn more about that stuff.

Topics that I remain weak on are threads, fibers, and RubyInline, although RubyInline is awesome and I need to learn a lot more about that...and new languages. Being able to use C in ruby for hyperspace in your programs is sweet and I am also very interested in using any and all other languages with RubyInline. I'm extra excited about learning other languages now, even though I probably won't start anything new until 2015. It will probably be my New Year's Resolution. This year's resolution was learning to code[killing it, btw].

In the next chapter, that I've already started ;), I'm going to be making a bot, like Eliza. It's supposed to bring most of the stuff that I've learned in the book, so far, together, and it should be pretty interesting. I'm looking forward to working on it more tonight... after I do a little bit more Hindi. Hopefully, this will be great review for the things that I have already learned and clear up some of the topics that I was fuzzy on going through the book.




Thursday, May 15, 2014

Learning to Ruby



I've had a pretty busy two weeks. Last week was Atlanta Big Data week, and event that was put on by Emcien. On Tuesday, I went to an event called How to Become a Developer, which featured a panel of developers who talked about how they got started. There was a lot of good information from the panel. It was a little annoying that so much of the Q & A time was taken up by people who just wanted to prove what they knew, but overall, it was a great experience.


The next event that I went to for Atlanta Big Data Week, was the two-day Hackathon that they held at hypepotamus. This was a really great learning experience for me, because I ended up being the team lead, which was odd because I have only been programming for a little over 1/4 of a year now. I was in way over my head on the project, but we had fun working on it, I met a lot of cool people, and was exposed to lots of new stuff. I'm going to stay in touch with those guys.

Hacklanta 2014

As a result of the How to Become a Developer event, Al Snow and Gerry Pass put together a meet-up called Career Planning for Ruby Newbies, where we got a lot of good information about learning Ruby on Rails and landing our first job. Afterwards, we all went to the monthly Atlanta Ruby Users Group meet-up, where John Saddington had a talk about blogging/social media, and how it can affect your career as a programmer and entrepreneur. Ruby on Rails rockstar, Obie Fernandez was also there and let us look at some of his code that involved using a gem called Wisper to do some publishing [it think?]. To be perfectly honest with you, though, I didn't really understand what his code did, but It was cool looking at it and just seeing how much it looks like mine. I was a good day all around.

Now, the plan is to get all of my ducks in a row: I will be blogging a lot more and getting my programming and development skills where they need to be. I'm going to re-do the Michael Hartl tutorial and instead of doing the application again, I'm going to turn the project that I've already done into something more personal. There is also a free 6-week web development boot camp that starts next week. I plan to meet up every Monday with some of the new people that I've met through this learning process to work through it. 

Another thing that I'm doing to work on my programming is Project Euler. I've completed the first two problems and I plan to do the next pretty soon. Over the past few weeks I've gotten lots of good information on programming and web development. If you're trying to learn, the meet-ups are a strong step in the right direction.

Code for America

The next event that I'll be attending is the National Day of Civil Hacking . I'm really looking forward to this. Probably the only short coming of the hackathon that I went to last weekend, for me, was that I was the best developer in my group. I hope to learn from some real coders at this one...but I sure I'll meet more awesome people as well.

Monday, March 24, 2014

Oh Snap!

I almost forgot to blog, this week! :)





I've been doing a lot of work with Ruby on Rails, this week. I've gotten a basic understanding of how everything works now, and I'm about half-way through the lynda tutorial. I'm finally at the part where we're actually designing stuff for the website that we're building. It's cool because I'm learning all about servers and databases and how to use them to run websites. I'm getting used to dealing with all of the files and the way things are done and really starting to enjoy it... looking forward to building my own site from scratch...in probably a few more months.

In other news, I'm starting two new classes at Coursera, tomorrow. The first one, is called Web Application Architectures, and it teaches web development using Ruby on Rails. I'm really looking forward to this course, because while the lynda tutorial is getting me there, this class will give me a more current and interactive experience in Rails, and I can ask questions and talk to other students in the class that are at or around the same level, as I am, in web development. I think that this class is going to be good for the learning process that I have going.

The other course that I'm taking is called An Introduction to Interactive Programming in Python, which is pretty self explanatory. It's part of a 3 course track that will take me through the Summer and allow me to work on my Python skills while I'm doing my Ruby stuff.

I definitely wouldn't be doing both, right now, if I hadn't already gotten a decent amount of experience with both languages already. But on the plus side, the languages are pretty similar, and even the course syllabus for the first class says that what we learn on RoR is transferable to other platforms like Django for Python.

Two more things, I started reading this book, to get an comprehensive rundown on web design, and because in working in RoR I learned pretty quickly that I need to refresh and expand my HTML and CSS knowledge. Once I get the programming/scripting side down, I'm definitely going to have to take some time to focus on the visual design and user experience aspect of web development, not so much to get a job, but for when I start working on my own projects. I can't wait until I'm comfortable enough with what's on my plate, now, to get into that. This new book is easy to read and I should be finished with it by next weekend.

Another development, last week, was that I got a call about a job programming in Ruby. I did a phone interview that went well; the recruiter told me that he would be forwarding my resume along to the next step in the process. It would be awesome if that turned into a job where I could hone my skills in the near future, but I'll be okay, either way. ;)


Thursday, February 27, 2014

Hello, world!

I'm still grinding away at learning how to program. After a lot more reading, I decided to start my program over from the ground up. I think that I did a much better job the second time. I've been kind of avoiding the actual programming, though, and doing lots of reading. I'm still reading the pickaxe book, but I've also picked up Coding Complete. I'm only three chapters into it, so far, and I already like it. It's helping me fill in more blanks, even this early. 

Through reading Coding Complete, the biggest thing that go reinforced to me is that the process of building software is much like any other project that I've worked on. I guess that we all watch these movies with computer hackers and just get caught up into the fantasy that coders just see a problem and then immediately know how to translate that into a program. Much like anything else, though, writing/building a program requires planning and design before you even sit down to write the actual program.

Another thing that I like about the book is the concept of using metaphors to better understand problems. I feel like the word that he was looking for was similes, though, because he always uses the word "like" when he describes his "metaphors," but "similes"' is definitely less cool sounding. 

Something else that I noticed about these books on computer languages is that they always use big words when they could be more clear using simpler terms. Being a stickler for understanding exactly what someone is saying, I'm looking up a lot of words as I read these books...I guess that's not a bad thing. I'm learning a lot of new words. Well, maybe not actually learning new words, but getting really clear on the definitions to words that I had a tenuous grasp on.

I'm so glad that I decided to learn programming. Originally, I wanted to learn programming because I wanted to build apps and software and I thought that if I had to spend time most of my time at work, then coding was something that I could enjoy doing. It fits my personality. But the more I do it and the more I learn, the more it's really not about either of those things at the core. I still really want to do both of them, but this is more like a hobby. It's fun to learn and it's fun to evaluate and solve problems. I can see my self getting really good at this. 

Saturday, February 8, 2014

...still

Still working on my Ruby skills. I read something motivating today on reddit: If you feel overwhelmed! KEEP AT IT! So...I'm keeping at it.

I finished chapter 16 in The Book of Ruby. That chapter made a lot more sense, to me. I have 4 more chapters, after that, I'm going to reread it slowly whilst doing other Ruby shit. I've also finished my first set of lynda.com videos. The new plan is to get an overview and then go over the materials again until I understand. I'm also only going to study Ruby until at least the end of April. I think that I need to get really strong in one language, before I start trying to learn the others...irregardless of what my cousin says about me being able to do Ruby and Python at the same time.  However, I will take his advice and focus on Python, next.

It's a good thing that I've always enjoyed computers and programming.  I'm really learning a shitload and for me, this journey is more about being able to make a living doing something I like more than anything. I was a marketing consultant and I really didn't like that job for several reasons including: corporate processes, lack of respect for marketing, and the lack of a culture that was anything approaching a meritocracy.

Don't get me wrong: I love marketing, but if I had the choice to go back to school, knowing what I know now, I would have studied either computer science or engineering and then got an MBA.  But that's water under the bridge and I did study marketing because it taught an important field, that I'm interested in...I just really want to be in tech and I really enjoy programming and solving problems.

To be honest, I'm a couple of days behind where I thought that I would be in The Book of Ruby, but I'm not disappointed.  I'm taking all of these online classes, but I realized today that completing these classes with a good grade is not the goal. The goal is to learn programming and class performance means nothing: I have my degree already and getting a job in this field, at this point, will be based on what I can do and not showing potential employers that I can finish school.