Delayed on purpose… my bootcamp search + review (part 2)

So my part 2 has been overdue, mainly because I’d been struggling on what to include or talk about that would provide real value to someone looking at this in the future.

Then I got an e-mail from a prospective student asking for my honest feedback, and I realized that my reply is basically my review of The Firehose Project! So here’s what this post is going to be. 1. My reply to this prospective student 2. Accompanied by a post to Codenewbies where I’m opening it up to questions.

I will update this post with any relevant questions and answers that result out of this.

So let me anonymize the sender, and give you pretty much word for word my e-mail exchange reviewing TheFirehoseProject.com online bootcamp:

First the question:
Angel, your candid appraisal of Firehose is what I am after. You clearly (and successfully!) made a large career transition and I would like to know what Firehose did very well and what Firehose did very poorly, in your opinion. Your thoughts would be extremely useful to me and I appreciate any information you would be willing to provide.

Response 1:
No worries. I was in your shoes really not too long ago. Here’s my 2(or more) cents:

Ken / Marco are genuinely stand-up guys. They care for their students and it shows in the interactions. They’ve gone out of their way many times to show support, even after course completion.

The curriculum apps seem a bit basic on first sight, and when you’re being hand-held through them, they’ll be challenging, but especially with your familiarity with Ruby code they shouldn’t be out of your comfort range. I really didn’t see the biggest value of the lessons until after I completed and started working at my current gig.

I’ve gone back so many times to review a concept that now is being used in my current code. The foundation is there. Another plus is the focus on learning how to ‘learn’. Many of the lessons will give you a slight explanation and then send you off to research StackOverflow or Google. This seemed a bit off-putting at first, until I realized that’s such a huge part of a day to day coding job.

Also, I didn’t realize how important git team collaboration was at the time. Every project and team project will be worked on and collaborated on through git (command line). Something that at the time seemed simple enough, learning about pull-requests, merging, merge conflicts, etc is so important when you’ll start working with other devs. I’m glad there was a focus on this during the course. Also, my current job has mainly remote devs. Working with them is very similar to working with a remote ‘team’ in FH.

One more note on taking advantage of weekly office hours – I’ve seen many students in the office hours not ready with questions. Maybe they can help focus students and having ?s ready for this weekly hour. I would always write questions out as the week went by, and would always have something to ask. Even if you think you solved it, ask it anyway. It’ll help your learning process.

Negatives: After burning through the core material, there could have been a bit more structure on ‘what’s next’. Take into account that I was working on it for about 6-8 hours a day, so I definitely went a bit faster than they had planned on. However, last time I peeked at the material and from hearing some of the newer students they’ve added more exercises to balance out the core program, and the team collab also has more structure now.

I did have a close-out meeting with Marco, and expressed this same feeling to him. I believe that this is something that has either been solved, or is in traction to be solved.

So there it is. If there’s something very specific that you want to know about the program, feel free to ask. FYI, I did try to come up w/ more negatives, but it truly was a great experience for me.

Best wishes

Reply:
Angel, I appreciate your thoughtful reply! What was your job hunt like? How long did it take after completing the program? Anything you would have done differently if you were going though it again? Thanks for everything!

Response 2:
Job hunt can be tough, but then again your circumstances may be different than mine.

I’m 33, no college (not just no CS degree) and no obvious tech experience. However, I knew that going into the program. I started going to tech events before I completed the program, and I started applying for jobs around the same time.

I did get a couple interviews out of traditional resume submitting, and the conversations looked promising but it never converted to anything.

Ultimately what worked was helping out a start-up. That led to a bit more and more. That led to a 3 month consulting gig, which lasted 2 months because they ended up just giving me a full time offer. I started my consulting gig 1.5 months after finishing program.

I met the founders of this startup at a networking event, and there was no guarantee that it would pan out to anything. But I figured that even the experience of working on a project that wasn’t ‘mine’ or wasn’t a student project would be worth while. Careful with this strategy, I had a very good gut feeling about these folks, but there will be many who will try to just get free code from you and really have nothing lined up for the future. For me, it worked out well.

Done differently: Work on more side projects while still going through the course. You’ll miss having a weekly mentor once that’s over. Take full advantage of it.

Final reply:
Thanks Angel. You experience during the program and following is more-or-less what I am expecting. Kudos to you for making it work. Well done. Thanks again for your thoughts.

 

I wanted to share this because when a ‘real’ person asked for help, the motivation to help them was much greater than writing a review post for an ‘unknown’ audience. Yet I know there are many real people out there needing some guidance before committing both financially and in time and effort to one of these programs.

Feel free to post comments, go to codenewbie or tweet @ajose01 if you are in a similar situation and have a question that I haven’t addressed.

 

Delayed on purpose… my bootcamp search + review (part 1)

 

Just 5 months ago I was reading every single post involving coding bootcamps that I could find. In my heart I knew there was no going back, I was going to dive in and make a career change. A coding bootcamp seemed like the most viable way to make it happen.

I spoke to my (extremely supportive) wife about the costs and time involved, and we decided that it was now or never. Work and any non-essential activities were going to be placed on hold. I was going to sell my car in order to pay for the $10k upfront that the original bootcamp I had researched was asking for. I was going to spend the crazy 10-12 hour days for 3 months in order to learn to code.

I was super excited and nervous for the in-person interview. Unfortunately, it wasn’t the experience I was hoping for. Call it a gut-feeling, but I just didn’t feel like it was a place I belonged. I asked questions, and the answers I received had this undertone of ‘I should know this already’. When it came time to asking about any payment assistance, the options were the following: 1. pay $10k up front, 2. pay $10k up front. I was sitting with the instructor / mentor, and I just didn’t feel like this was a person I could see myself spending the next 3 months working and learning from for 10 hours a day. This bootcamp above shall remain nameless. I can’t attest to the quality of the curriculum, so maybe someone else may have a completely different experience. For me though, it was back at square one.

I started doing extra research on finding a quality bootcamp, and ended up at this post comparing online bootcamps. I thought it was awesome that these people did everything online, but I wasn’t too convinced yet that I wanted to go that route.

I also saw this post / video on how to find a great bootcamp, and what type of questions to ask. I ended up going to some different presentations for bootcamps, including GA and used the information from the video to filter out my choices. GA was much more welcoming, and I liked what they had to offer. They even included payment plans / scholarships. I love the community they’ve built around the Los Angeles area, and I still enjoy many of the events they put together. Everything looked good, except one minor detail. None of the folks giving the presentations were developers themselves. They were sales reps. I would only meet my future mentor until I was actually a student in their campus. I am sure they have great mentors, and I’ve actually met some of them myself now, but at the time I didn’t want to go through my original experience with bootcamp1 again.

At this point, I finally started seriously considering an online option, with the condition that I had access to a mentor. I watched the video comparing online bootcamps so many times, read Quora reviews, google reviews really anything I could get my hands on. In filtering my choices I kept one thing in mind: I didn’t want to just learn how to code, I wanted to have a career in tech through coding.

This left me with my two top choices: Bloc.io and theFirehoseProject. My interview with Bloc.io was a very pleasant experience. I had someone call me, walk me through their process and answer all my questions. It was a very no-pressure experience and I was almost convinced that it was going to be the route I would go with.

Then there was theFirehoseProject. I’d seen so many of their videos and posts in the process of doing my research. I finally sent in a request for more information, and I got an invitation for a google hangout to talk about their bootcamp. It was so funny to have Marco and Ken (founders/mentors) on a video on one side of my screen, and all of a sudden have them on a google chat on the other! This conversation felt like talking to old friends. They put me at ease with all the questions I had. I was allowed to go at my own pace, which for me meant going faster than how they had scheduled their lessons. They allowed customization of their mentor sessions as well, depending on whether my focus was on working as a developer or launching my own app idea. The one component that Firehose had that none of the others did was their final project. The final project was an actual team project. You were thrown in as part of a development team along with other students, with different experience levels. One of the mentors serves as tech lead, and using git / github the students collaborate on developing a real project.

I chose theFirehoseProject, although Bloc.io was a close second choice. Both were about the same cost-wise, and both offered payment options. I could have probably spent more time researching even more options, but I what I really wanted to do was get started!

So now I’m enrolled in a coding bootcamp, with no previous html, css, or programming background… how was my experience?

My review of theFirehoseProject in part 2.

 

 

 

I AM a developer

An update on my coding career!

I’m excited to share that I’m now a  developer for a local start-up here in Los Angeles, CA. I’ve been working on both backend / frontend features. I met the founders by attending start-up events around the area, and learning more about what they do. One day, one of them hit me up to see if I could help them catch up on some smaller projects. This sounded just like the ‘in’ that I’d been looking for! Without having the background in tech or a degree in CS, this is exactly what I needed to prove that I can perform.

 I’ll go into more specific details on a later post, but for now I am proud to say that some projects that I worked on directly will be pushed live in a few days! I started with some small projects that lead to some bigger requests. Exciting times ahead!

I’m going to post some tutorials that I wish I had in the following days, but for now I wanted to share some new insights as a #codenewbie.

  1. Code can be and will be messy at times. This is not necessarily a bad thing. Specially if you work for start-ups, the project may have been pieced together at different stages with varied resources. Take your time and try to figure out why and how things are glued together. As long as you’re not messing directly with the production environment, don’t be afraid to break things in order to learn what they do.
  2. Try to implement some of the features in your own projects first. Why? For me it was a logical choice. I know my code. I know how I set things up. It’s easier to implement something new when you know how everything fits together. Once I figured out how to implement a new feature on my project, it was much easier to tackle the nuances on theirs.
  3. Don’t be afraid to ask for help. You don’t need to share specifics or trade secrets here. Just ask for help on general terms. Again, implementing things on your own projects helps when asking for help, since you can share your code there.
  4. Tackle the quickest / easiest projects first, AND DELIVER. This is key for two reasons. One, it’s a confidence booster. You’re actively coding as a professional (say whaaaat?) developer now. Delivering your first projects is amazing, albeit nerve-racking. Deliver those easier projects fast. Second, because it’s more impressive. Here’s how I think of it:
  5. You are more capable than you think. You’ve been expanding your skills for the past months. You’ve been coding, studying and building stuff. Although you feel like a newbie the whole way, you may have not realized that you now know stuff that MOST people don’t. When you’re surrounded by developers you may always feel like the least capable or experienced. But for most of of the population, you now possess a highly valuable skill that they don’t. You’re a developer!

Just a few months ago, I had not written one line of code. Now I AM a developer whose code made it to production. It’s amazing what can be accomplished in a short amount of time with decisiveness and dedication.

Stay awesome and keep coding!

 

My one man (LONELY) awesome hackathon… in my house.

So I spent the last week hanging out with the cool people over at @lastartupweek.  I mingled, met some awesome people and learned a lot.  This week though, I really felt like I needed to get back to coding!

Enter my imaginary in my house one man hackathon (insert loud echo here).  I set a goal to build a simple app, that could be deployed to heroku in under 24 hours.  Lately I’ve been going back to my existing projects and adding features, but I wanted to make sure I don’t forget how to start a new project from scratch.

On to ideas… I’d been reading some articles on habits and addictions.  Both have one thing in common, which is that it’s helpful to keep a tally of how many days you’ve accomplished this particular goal.  Kind of like the person working out for 90 days straight, or the ex-smoker who has 321 days without touching a cigarette.

Based on this simple idea, I figured I need a way to count days and to track a users check-ins.  I didn’t see a need for an admin function, so I didn’t implement this.  I also figured that I didn’t want someone to be able to check in more than once per calendar day.

I did scratch some other ideas once I started coding.  I originally wanted to make the background a shade darker as the day count would go up.  However, it was sending me down a rabbit hole figuring out how to pass this info over to the css based on my function.  Considering my goal of finishing at least a simple version of this in 1 day, I scrapped it.

So here are some of the highlights that made this app happen for me.  For the counter, I just added a column to the user model called ‘check_in’.  I verify the first time user with:

<% if @user.check_in.blank? %>

I check if a user has already checked in today with this in User.rb

def on_time?
self.updated_at.to_date == Date.current
end

and in my view it’s a simple

<% if @user.on_time? %>

And to get my counter going, I added this in my controller:

def update
@user = User.find(params[:id])
counter()
redirect_to user_path
end

private

def counter
@user.check_in = @user.check_in.to_i + 1
@user.save
end

There’s some other functions in there, but these I think are the main one’s I needed to get my simple app going.  I added some styling with twitter bootstrap3 and some random CSS that I’d been wanting to try out like a gradient background behind the number count.

 And just like that… Day Plus One was born!

Screen Shot 2014-10-29 at 12.18.58 PM

 heroku:  https://dayplusone.herokuapp.com/

github:  https://github.com/ajose01/dayplusone

 Now for my takeaways:

 Even in such a simple app, the final product isn’t what exactly what I had initially envisioned.  I was getting stuck, but I decided that it was more important for me (and my self-confidence) to finish at least a basic working app than getting it 100% perfect.  I can always go back and add these “nice-to-have” features.

I also asked for help in reviewing the code, not in writing code on this project.  By doing this I was suggested to move some functions into the model instead.

 My other HUGE takeaway was that it took me nowhere near the 24 hours that I had initially allotted.  I know, it’s a simple app but it’s good to know that my knowledge is increasing where I can complete most of it without having to search for a solution to everything.  This is awesome.


If you’re learning to code, I would completely suggest throwing your own one man hackathon!

p.s. Please feel free to make suggestions, critiques or maybe even contribute!

 

 

How I’m getting the MOST out of my (online) coding bootcamp

As I mentioned on my first post, I joined theFirehoseProject.  The guys who run this are great teachers.  They are knowledgeable, but most important of all, they are always available!  I’ve gotten replies to emails at ungodly hours of the night.  However, even with having great instructors or a great mentor, to really get the most out of the investment I’ve made, I feel very strongly that you can’t rely solely on your program.  This is not a knock on the program or any program, but I keep hearing something over and over again while doing my online bootcamp research.  You’ll get out of it what you put in.

Here is my recipe for going through my online bootcamp:

1.  Go through the structured material as fast as you’re allowed to.  Although I didn’t understand 100% of what I was learning at first, just being exposed to as much as possible fast was a huge advantage.  I figured out very quickly which aspects of coding were going to be a simpler for my unindoctrinated brain to absorb, and which ones were going to give me lots and lots of sleepless nights.  BUT, the main advantage of doing this if your program allows is that now you have access to your mentor sessions to consult on any future issues that you haven’t even discovered yet.

2.  Use your bootcamp projects as launchpads for learning new features.  This was advice that my mentor Ken actually gave me.  Going through the course material quickly allowed me the time to add features that were not originally planned.  This again exposed me to different items and questions that I would not have had otherwise.  By doing this I was able to add a gallery feature (fancybox) to my taco review app.  I am now working on adding locations by using the Google Places API.  Again, this was not part of the original course material. Although we did touch on APIs on a the lesson, this gave me a challenge outside of the hand-held material.  This will also help inspire ideas for future side projects.

3.  Go to coding / development / startup events. First off, these are amazingly fun.  Then the community is also very supportive, at least here in LA.  I think it’s important to start going through these as early as possible, even when you’re feeling clueless while being there.  Most include great speakers.  When you’re hearing them speak, listen for the common languages and tools that they are using, and usually during the Q&A session you’ll start getting a feel for what some of the common concerns are in the actual working field.  Take the most common things you hear, and go ask your mentor about them!  Maybe there’s something that’s being used a lot in your tech area, that you’d really benefit from at least being exposed to the concepts.

4.  Meet people.  Going to events goes hand-in-hand with this.  But you can go to an event and be invisible.  Don’t.  Meet people.  Some people will be genuine co-mentors to you in coding.  They’ll look at your code, give you feedback, and help you when you’re stuck.  Whether you’re looking for future employment, they may give you an introduction to the guy you didn’t even know was hiring.  If you’re looking to launch a startup, they know many more people in the community that would be a resource for you in the future.  Be genuine about your place in your coding journey, and people will genuinely lend you a hand.  You may even land a job, while still having your mentor as a resource!

There it is.  A bit long winded, but it’s a collection of the different feedback I’ve been getting, and what I myself have noticed.

The journey continues!

 

I could be a web developer?

Over the past 4 weeks, I’ve completely changed my focus towards my career.  I’d been looking for the next step for a while.

The car dealership works fine, but it’s not producing the income in relation to the amount of time and work that I’ve been putting into it.  To top it all off, many of the things that come with the package of being a dealer I just plain dislike.

I’ve always had a love for anything tech related, and for most of my friends I’m the go-to ‘fix my computer’ guy.  That’s why when I saw this article in Lifehacker it completely caught my attention: answer a couple questions, and it spits out a career in tech with school recommendations.

This led me down the rabbit hole until I found out about Coding Bootcamps.  Typically in 10-12 weeks, you can be ready for a new career.  Not only that, there’s actually a much needed demand for web developers.  Credentials / degrees not needed, just solid ability to get work done.  That sounded like my type of career!

Most in-person bootcamps are very expensive and time demanding, so I opted for an online bootcamp.  To keep this post short, I’m 4 weeks into this bootcamp.  I went through the material as fast as possible, studying for over 6 hours a day on most days.

I have 3 rails projects up live and on github, a portfolio page and am working on a team project. In just a short amount of time, here’s some of the things I’ve already done:

  • Set-up and configure a database (postgresql)
  • Set-up user authentication
  • Connect to Google Maps API
  • Worked with different gems
  • Famliarized with git, branching, pull requests and merging.
  • Pushed my projects to github.

I love coding.  The support in the coding community is great, and there’s so many people willing to help (looking at you CodeNewbie.org).

This is exciting!

 

 

No amount of Instagram filters can make this look good – Decluttering – Part 1 – Going (Semi)Paperless

My clutter and me! Unfortunately for my wife, I tend to get buried under my clutter.  And it all usually starts at my desk.  Since it’s one of my primary goals to live a simpler, less hectic life, decluttering my desk where I spent most of my work hours seems like a logical first step.

Although I love the idea of working completely paper free, it just doesn’t seem always practical in the different things that I work on.  The next best thing was to go semi-paperless.  I combined advice given to me by a friend who’s a professional organizer years ago, some guides on how to declutter, and a good scanner.  If you have any interest in repeating this process yourself, here’s my step-by-step.  It’s long.  Really long.

 

Here are my tools:

  1. Coffee.  Plenty of it.  Or wine.  Actually wine works better.
  2. Two trash bags or bins.  One of them for trash, the other for items that need to be shredded.
  3. A scanner.  If you have a lot of papers to go through, I really recommend having a quality scanner to work with.  I use a ScanSnap s1500 for work, and it is fast!  But for this project I used the smaller ScanSnap s1300.  It is a bit slower, but easier to store away.  To me having a fast scanner made the world of a difference.  I can’t imagine tackling this project scanning only one sheet at a time.  Borrow one.  Buy one on craigslist and resell it once your done.  Learn to haggle and you may even make a profit.
  4. File organizing system.  Once you scan your documents, where and how will you save them?  It’s important to know how you’ll organize everything you have on paper, or else it will continue as clutter, only now digitally.  Depending on how you like working, I suggest Evernote or a cloud storage service like Dropbox or Google Drive.
  5. Some good music to keep you relaxed.

The process is actually not complicated it is just tedious.

 

First – Decide where you’ll keep your digital files.  I suggest either Evernote or Dropbox.  Both of these are compatible with Macs, Windows, iOS and android.  Since both are cloud based, it means you have access to your digital files pretty much anywhere.

Evernote (www.evernote.com)

Evernote is good if you like tagging your files.  This simply means that when saving a file, rather than relying on the file name or folder location, you assign several keywords or tags to that file.  This helps for keeping all your files easy to find.  You can keep some level of folder organization by creating sub-notebooks in Evernote.  If you chose the Evernote route, I suggest starting with a simple notebook named “Digital Documents” or something similar.  If you have a business, then some sub-notebooks named “Personal” and “Business” may be helpful.  If you really take advantage of tags / keywords you really don’t need much more than that.

Dropbox  (www.dropbox.com)

If you like keeping more of a traditional folder structure for your files, then Dropbox is the way to go.  It’s free, and easy to setup.  Create a folder inside of your Dropbox folder named “Digital Documents”, with sub-folders called “Personal”, “Business”, etc.  For this type of folder structure, I tend to organize things by date.  So I may have a folder called “2013” and then sub-folders for every month.  How you name your files will be more important if you choose this option.  I have always used the following pre-fix to all my files in order to help keep things organized:  MMDDYYYY-FileName.  That means two digits for month and day, plus four digits for the year.  So a file created today would probably be named “01292013-Blogpost.docx”.  This has always helped me at work to quickly identify files.  However, if you are scanning I don’t suggest using the day you scanned the item.  Use whatever day identifies that document.  If it’s a receipt, use the day on there.  Usually any mail received will have a date, use that one.

 

Second – This is where the advise from a professional organizer really came in handy (thanks Beth! – Bneato!).  Make sure you block enough distraction free time to get through your mess.  THIS IS VERY IMPORTANT.  If you get distracted (like I did in a previous attempt) you’ll end up with a bigger mess.  Once you’re sure you have the time set aside to do this turn your music on, get your coffee or vino ready and pile all your paper mess together.  ALL OF IT.  Look underneath your keyboard, behind your desk and anywhere you can think of.

 

Third – Go through every single document, from top to bottom.  Make a quick observation and decide if the document is still needed.  If it’s not, throw it in one of the two bins.  Trash if there’s no personal information on it, or the shred stash if that’s the case.  If it needs to be scanned, don’t put it in a scan pile.  Scan it right then and there, and then trash or shred.

The ScanSnaps are more than capable of scanning big chunks of papers at once.  However, I decided to keep individual scans of documents, which would make organizing them digitally easier.  The advantage with these scanners is that they scan both sides of a sheet at once, and have a document feeder that is good at not getting stuck all the time.  The software for these scanners has the option of scanning to a folder (in which case just point it to your Dropbox folder) or directly to Evernote.  If you’re using Dropbox, select which folder to place in and give a filename based on the naming template I suggested above.  If you have the Evernote desktop app open, it will scan to whichever notebook you currently have selected.  Keep doing that until you see that stack of papers disappear!

 

I had a lot of documents to go through.   But it’s a good feeling to meet my desk again!  Not only that, but now my paper documents are accessible from my computers or mobile devices.  Also, in case of a disaster at home I won’t worry about losing important files.

If you don’t want to scan daily, then just keep a box or folder where you’ll keep all pending papers.

Now that my desk is almost paper-free I need to move to the next step.  I have way too many gadgets and knick-knacks laying around.  Stay tuned for some eBay deals or some giveaways depending on how cool we are.  Adios!

 

My messy desk

My messy desk

Story of the pic:  Embarrassing as it is, this really is my desk.  Give it some time though, and it will no longer be ashamed to have its picture taken.

 

The beginning…

To the few (very few) who will ever even see this post, thanks for dropping by!  I’ll be using this blog mainly as a personal tool to be accountable for several projects that I’ll be taking on.  Some of them will be personal, some professional and some just because I find them fun or enjoyable.  Also, I hope to improve my writing along the way.

One of the first projects I’ll be documenting is reducing all the clutter that I have.  I love gadgets, and I love storing gadgets.  My wife thinks my desk / garage look like Fry’s.  It’s also very easy for me to overwhelm my desk with cables, papers, folders, etc.  So it’s time to de-clutter, but I’ll save that process for later posts.

Now it’s time for me to pour myself another cup of coffee and add some additional items to this blog.  Thanks!

IMG_1961-Edit

 

Story of the pic:  I took this picture while having lunch with my wife in Brooklyn.  It was our first meal in New York during our trip in 2011.  My wife always looks at me funny when I rearrange items just so I could snap a picture.