Thursday, December 19, 2013

Should I Learn Google Dart As A First Language?: Swallowing The JavaScript Pill

Let’s get this out of the way. I’m an indecisive person. I’m the guy that’ll be in store looking at 2-10 different bottles of sunblock for an hour while one of my best friends is standing there with his hand freezing because he got a gallon of milk (thanks Kyle for always putting up with me!!!). All the while thinking this would have been much easier if I had only done the 2-4 weeks of research I usually do before buying a product (not joking).


Knowing the above, the world of programming is my own little level of Dante’s Inferno. So many choices from languages to frameworks. I went to a coding bootcamp and I took a very shallow dive into several languages, now it’s time to take a deep dive into a stack (frontend and backend). This came down to JavaScript, JavaScript/Python, or Google’s new language Dart.


It has been utter turmoil for me the past few weeks as I took a shallow look at these languages. The real decision was between JavaScript and its new competitor Dart. I’m a calculated risk type of guy and Dart is definitely a high risk / high reward scenario for Google, but what about the common man? This is where practicality wins out. I’m going to be learning JavaScript, for how long? Until I make something presentable for a project!! So months at least.


There are a lot of reasons to pick JavaScript over Dart, but the main reason for me, legacy code (ewww). Like it or not most of the web has some sort of JavaScript in it and it’s still worth learning now even as Ecmascript 6 is soon to be released, and all the frameworks that came out in the past few years are gaining traction. While learning Dart is something I still plan to do it isn’t worth being the first language I take a deep dive into because when I look for a position as a programmer I will most likely still need to deal with JavaScript code and it will be expected that I know it.

So for all the new programmers out there trying to make this decision I hope you found this helpful. I only stated one reason to learn JavaScript, but I think it’s the most important one when picking a first language. A language you will have to deal with anyways. Right now choosing to not learn JavaScript is like choosing to not learn HTML/CSS.

What Is Eloquent Code?

This post explains what is eloquent code to me and why. Note that I am still within my first year of learning to code when writing this so take it with a mountain of salt.

Before learning how to program I kept hearing about the concept of eloquent code.The word eloquent by itself vague so understandably it will mean different things to different people. Most commonly, it can mean readability, maintainability, pretty (aka syntactic sugar), well commented, efficiency (code that executes a function the fastest),  or having the least lines possible to run a program.

During my bootcamp the class had algorithms to solve and we would present our answers. This gave us a chance to see how each person thinks, represented by their code. When comparing my answers to others I noticed mine was simple and straightforward, maybe that’s because I’m simple minded. I have a tendency to minimize the amount of methods already available within the language, didn’t include regex (regular expressions), and didn’t get fancy with manipulating attributes, though I understand these are needed to complete certain tasks more efficiently (time to code and runtime).

My concept of eloquent code derives from understandability. It is as follows understandable->readable->well structured->maintainable.

  • Understandable code is:
    • Readable: A person should be able to look at the code and understand what is trying to be accomplished. Preferably, this is by reading the actual code instead of just the comments.
      • Well Structured: To obtain readability overtime the code base must be well organized. This means a person can find what they are looking for within a code base.
        • Maintainable: Because the code base is readable and well structured it is going to be more maintainable (updating/editing current code base).

Well, that wasn’t vague at all (/sarcasm). This is my general concept of eloquent code. What it means to be understandable and its derivatives will be up to each person and company to define. Just make sure to document so people don’t forget.

There are definite limitations to this concept. For instance, maintaining legacy code millions of lines long. This concept will only work when starting out or if the person/company have the ability to re-write the entire code base.

A friend once told me great code will look like only one person has written it, no matter how many people collaborated. There’s a lot of information in that one statement, and hopefully I unpacked it well in this post.

Sunday, October 13, 2013

Coding Dojo Review: Days 28 & 29 Matz and More

Got into the Matz meetup at Mozilla. Defintely a great experience for my first time. Here are some pics of the event.
How we know we're at Mozilla

Buffet table! 

Open Bar!

And of course me and Matz

There's going to be the Uncubed job fair next week and the Railsbridge workshop at Tapjoy on Saturday. 

Overall: Great end of the week and it's going to be the same this week as well =). Starting on Ruby tomorrow. 


Wednesday, October 9, 2013

Coding Dojo Review: Day 27 Version Control System / Git

Moving onto Git and using the terminal. Learning about Version Control Systems (VCS) is something that is becoming much more common. I remember sourcing for a position that required SVN (another VCS) and very few people listed it on their skill set, at least for Tool Developers. These systems saves all the changes made by people working on a project. Anywhere along the process the person in control of the project can revert back to a previous version.

I used to work out of Google Docs and shared network files and sometimes it just became a mess. A person would overwrite a file and we would lose everything, weeks, sometimes months worth of data. Dropbox also saves different versions of your files which is quite handy.

Overall: Feels like I'm making progress. Continuing to learn about Git after class. Few more days and I expect to start Ruby next Monday.

Tuesday, October 8, 2013

Rage Post: Wasted Time Debugging Nothing

OMG!!!! 4 hours of my life gone! Tried to figure out what was wrong with my database connection since nothing new showed up when inserting a new user. Hours later I see that deleting my current rows of data that I inserted manually revealed all the previous information.

Restarted MySQL Workbench, now everything works.

Nothing like spending 4 hours debugging something that wasn't broken. *sad panda* *angry panda* *sad panda* *sleepy panda*

- night folks

/rant

Coding Dojo Review: Day 25 and 26 Resumes and Landing Interviews

The past few days I have been helping some classmates with their resumes and LinkedIn profiles. If you want a breakdown of what should and should not be on your LinkedIn profile please go here: http://withdavidli.blogspot.com/2013/09/why-youre-not-showing-up-on-linkedin.html .

As a former Recruiter and Sourcer I viewed hundreds of resumes per day. And to be frank, most of them sucked. Listing a few of the reasons why they sucked:

  • Sections of experience, eduction, projects, and others were not placed in the conventional manner
  • Using words like "help" or "assisted" when they played a critical role on a project
  • Design / color
  • Lack of contact information
  • Photos and other personal information that were not related to the job
In addition to fixing some of these mistakes we also went over how to deal with agency recruiters, setting timelines for hiring process, and salary negotiations if you think you quoted too low of a salary in the initial phone screen. 


I'm happy to say that in less than 24 hours my classmate that posted his resume was contacted by 5 different recruiters and is already setting up interviews ranging from San Francisco to San Diego.

Overall: I'm always glad to be able to help and to see results this quickly really made my day.

Also, in the past 2 days I finished my Google Directions API assignment and started my advanced OOP. The OOP is giving me a bit of trouble, but onwards I go and hopefully starting on Version Control tomorrow.

Sunday, October 6, 2013

Coding Dojo Review: Day 24 / End of Week 5: Starting Strong Only Matters If You Finish Strong

4 more weeks left. All there's left on the curriculum are 2 weeks of projects and learning Ruby and Rails. This weekend I finished 2 assignments in OOP and went back to AJAX API assignments.

APIs are extremely useful since it allows you to retrieve data from other web applications like Google Maps for directions or any Weather APIs for local weather info.

Overall: I'm spending 7 days a week at the Dojo currently. It is quite exhausting, but to cover and understand this much material with no background in programming it's what I have to do.

The thing to remember is not to shy away from hard work. And starting strong only matters if you finish strong. 

Thursday, October 3, 2013

Coding Dojo Review: Day 23 OOP

Getting to the OOP section and understanding the workings of classes, private, protected, and public properties and methods.

I had some experience with this before going through the Codeacademy Ruby track. Can't wait to start using it large programs where its real strength comes out.

We are also presenting our application idea(s) to the class tomorrow. Listening to advise and requesting help for certain parts of the application if needed.

Overall: I think I have a pretty solid idea that I would like to make a web application and mobile application out of. Most likely going to start it a bit before the last week of the bootcamp and use next week catching up and start on Ruby. It's much more important to me to solidify my knowledge base of the current section and get a head start if possible after next week than to have a mediocore project that I might want to redo using another technology like Rails.

Wednesday, October 2, 2013

Coding Dojo Review: Day 22 Meetups and Hackathons

So we found out at the end of the day that we're going to be having a hackathon against the Seattle class next week. Suprise, we're doing it in JavaScript, so we have to learn JavaScript lol. Our instructors were making a course for it anyways and this will be a fun way to motivate students. The trash talking has already began from our northern brothers and it would be rude if we did not respond in kind ;) .

Additional news, signing up for Meetups. Two so far, the first will be in Mountain View to hopefully see Matz, creator of Ruby, speak. The second, a workshop for Ruby on Rails at the TapJoy location in San Francisco.

Overall: We're all starting to get into networking mode. Concentrating on our learning will always come first, but for those of us that are planning to stay networking is essential to land our first positions out of the bootcamp and can't be ignored.

Coding Dojo Review: Day 21 Pagination DONE!!!

Finally finished my pagination this morning!! Thanks to the help of my classmates Jeffrey, Juan, and Jerry! hmmm all of which starts with a Js.

Going over the assingment today in our afternoon lecture I also found out that this is the most advanced assignment we have in AJAX, even though it is listed as intermediate the pagination was added later which increased the difficulty level passed the current advanced assignment.

Going to finish my advanced AJAX tomorrow which involved allowing a user to post, edit, and delete notes. Then starting on OOP later in the day.

Overall: Project week is next week. We're given the option to catch up on courses if we're behind, move ahead in the course work, or doing a project. I'm most likely going to be catching up and moving ahead on class work during next week. We're suppose to have 2 projects done by the end, but I feel that having 1 great project is better than having 2 mediocore projects.

I had 2 projects in mind, both of which can probably be built out using what we have covered in the course. One is heavy on user inputted information so lots of tables for MySQL and the other utlizing APIs for most of the information.

Here's to a good start to October!

Monday, September 30, 2013

Coding Dojo Review: Day 20 Maker's Schedule, Manager Schedule

For those of you who haven't read it go to http://www.paulgraham.com/makersschedule.html .

I've almost always been on a manager's schedule, especially when I was in the recruitment industry. Things were interrupting me all the time, daily plans regularly get shifted out of necessity. You never know when that great candidate is finally going to return your call, or that hiring manager who was deemed missing in action by the team is actually alive and demands to know why isn't anyone hired yet... but I digress.

Attending Coding Dojo I have definitely been on a maker's schedule. Today was a prime example why the two different schedules conflict with each other. Morning lecture and warmup took about an hour(9-10am), 2 hour lecture on Git after lunch(1:30-3:30pm) and an hour special session at (4-5pm).

While that left us 4.5 hours of time to code I could barely get anything done after lunch. I was on a roll finally making head way on that damn pagination problem, but the chunks of time to get back in the programming mindset and knowing there was another sheduled lecture/meeting coming up was a pretty big distraction to me.

Today wasn't the norm, usually there isn't a lecture mid-day so there's more uninterrupted time.

Overall: The instructors have just added a Git section to the course. Always a great value when a consumer get more than what they were expecting. The school is continually improving and I'm happy to see them adding/modifying current materials.

Side note: Got a 10/10 for my Green Belt exam!! Totally crushed it like a boss! =D

Sunday, September 29, 2013

Green Belt Exam

Finished my Green Belt exam today. This covered PHP and MySQL. Didn't feel confident on the way in, but finished strong. Got everything done in less than 2 hours out of the given 4.

Overall: It says a lot about how much you learn when in entire week you'll be struggling with a subject, and then 1 week later you can completely crush an assignment in 2 hours that would have taken you 8+ hours.

Going to finish AJAX this week and move onto OOP and CodeIgniter.

Why You're Not Showing Up On LinkedIn Searches

In this post I'm going to cover the following:
  • How Recruiting Teams Search LinkedIn
  • What You're Doing WRONG
  • LinkedIn Glitch

How Recruiting Teams Search LinkedIn 


Professional search teams use boolean search strings to find candidates on the internet. Most people have first encountered it during a library course where we find books, or at least I did. That and the Dewey Decimal System were fast forgotten.

You don't have to be an expert in boolean strings. The 3 main things you want to know are:

Operators What They Do
''Phrases inside quotes'' Searches for the exact phrase. Capitalization does not matter.
''-'' The minus sign gets rid of any page/profile/resume with the keyword right after it.

Ex. -manager

Will get rid of profiles with manager on them.

Exceptions to LinkedIn profiles. Words inside of recommendations do not apply.
AND The AND operator will only show profiles if all the words are on the profile. Words do not have to right next to each other.

Ex. engineer AND Stanford AND doctorate

Will return search results with all 3 words. Most likely with engineers who graduated or works at Stanford with a Doctorate.

If a page does not have all 3 required words they will be excluded.

Most major search engines and job boards support boolean strings as they are a useful tool to narrow down search results.

In addition to boolean strings filtering systems provided by websites are often used. LinkedIn in particular has a very robust filtering system. One I found much more accurate than any job board's I used. They include:

  • Years of experience
  • Location by city or zip code radius
  • Current and/or past employers
  • How long you are in your current position
  • Highest level of education
  • Field of study for your degree
  • Industries that you have been a part of (determined by what your employers are listed under)
  • Advanced search engine










What You're Doing WRONG


I'm sure just reading the above section there are some changes you would like to make to your profile. Here are the most common mistakes I have seen profiles.


Categories What You Did Wrong
Years of experience
Many job boards let the user explicitly decide how many years of experience they have. They usually fill in a little box asking them this question. There is often confusion about this question. Whether they're asking for experience in total years you have been employed, specific industry, specific technology, or level of your current role (e.g. Specialist, Manager, or VP).

LinkedIn doesn't ask its user this question. It takes that information from 
the years of experience at each employment the user filled out. From my 
perspective this has been a much better filtering system than letting the user 
explicitly state it for the reasons listed above.

Here are some flaws in this system that users may not be 
aware of:
  • Listing a position simply as current role. LinkedIn will read this as 0 years of experience without a start date.
  • Listing all the roles you ever had. For example, you have been in a Mechanical Engineer now for 3 years. Many companies are looking for the 3-7 years of experience range so you should be a prime target of recruiters unless you made this error. You had decided to list those
    2 years as Pizza Delivery Driver, 3 years in your undergraduate internship, and 2 years in your graduate school all under the experience section. Now instead of being a prime target at 3 years of experience you set yourself up at a senior level target with 10 years of experience.
Detailed Profile
Here are the major fields that you should have filled out:
  • Location by city and state
  • Highest level of education completed (If you haven't completed it yet put the expected completion date.)
  • Employment details
  • If you are still employed put your start date to present. Don't put your end date as the day you are writing it. If people are looking at your profile years later they might think you have been unemployed and doing nothing since that time.
  • Correct and fully spelled out titles and technologies unless they are commonly abbreviated.
  • List all the technologies you feel comfortable with. Give more details about certain items/roles/technologies if you are comfortable with it being a primary responsibility. Examples like developing in Java, designing brakes and safety systems, or mergers and acquisitions.
  • Posting your resume. But if I have all my information on my profile why would I need to post a resume? LinkedIn profiles are formatted differently than what a recruiter is used to and if they download a PDF version of your profile LinkedIn will leave out certain sections of your profile. 
  • Contact information. You want to make contact as easy as possible. InMails can cost up to $10 each. Connecting with you might require your email to send a request. Finding out your contact information on the Google and other methods can be time consuming. If the goal is to be contacted then your profile should make it as easy as possible for people to contact you.
    • But I don't want to deal with SPAM!! An easy way to deal with a large number of people emailing or calling you is to use some of Google's free services. My two favorites are Google Voice for a separate phone number and Gmail which you can connect several accounts and smoothly switch between them. Use these new accounts and check them once a week without intruding on your primary contact info.
Too Much Information!
On the opposite end of the spectrum do not put:

  • Information about targeting a specific position. This isn't necessarily a bad thing to do, but I classify this more towards an active candidate sending in an application for a specific position. I see this on LinkedIn profiles and job board resumes a lot. A recruiter will make many assumptions based on your career progression by themselves. Adding a specific targeted job may exclude you from consideration because it tells recruiters you're interested in nothing else. For example, you're in an Analyst level position wanting to move up to a Manager level position. Two to three years pass and you find out you hate being a Manager, you loathe it from the deepest part of your being and want to return to the good old days of being an Analyst. In the past few years you could have been getting calls for Analyst positions, but your profile said you only wanted to be a Manager.
  • Detailed information about your family. We know, your kids are smart, bright, gifted even. Knowing how well little Timmy is doing at soccer practice will not help you get a job.
  • Horrible profile pictures. There are entire articles written about a professional profile picture. Most people don't care. You can be wearing a t-shirt, sunglasses, on the beach. That's fine with me, if you have the skills I'm looking for. On the other hand if you're the person with a lampshade on their head at a party… Having no profile picture is fine with me as well, but it will make your profile look inactive unless there was a recent update.
  • Over inflated titles and adding titles of high level superiors. This may exclude you from some searches. More information on this on the next section.
Search Engine


This has mainly to do the with ''-'' boolean operator to get rid of false positives. Here are where it usually excludes candidates:

  • Titles - Did you liaise or work with your VP, Manager, Project Manager, or CEO? People like to throw in big titles because they think big titles will catch the reader's attention. In this situation if I'm looking for an Analyst level candidate I will subtract titles like Manager right from the start.
  • Keyword: Recruiter - People might write how a recruiter should contact them, or that they don't want to be contacted by a recruiter. Either way it is a common title excluded from searches because Recruiters tend to list out all the positions they are hiring and/or hired for.
  • Technologies / Skill Sets - Are you a front-end web developer now, then you might want to get rid of instances of the word embedded or back-end. This is a similar case for Financial Analysts who deal with mergers and acquisitions; they should get rid of certain words like tax/taxes.
    • The key here is to do a search on LinkedIn or any job board for your position or target position. See what the results are and determine reoccurring keywords that is associated with results you don’t want. Then either modify or erase those words from your profile.
    • Tip: This might be the time to use abbreviations or the plural form of the keyword. I often take out the word manager because it’s associated with a title, but not managers.
Not Connecting With People!
Just posting a LinkedIn profile isn't enough. I have come across many profiles that are in the single digits of connections. People think that just because their information is on LinkedIn people will be able to find it. While this may be true your profile will be found much later than people's profiles that come up on search results easier and this means missing out on opportunities, like first round of interviews. 

So how does making a lot of connections help recruiters find me you might
ask. Well, LinkedIn has a free and paid version. 
For the free version the
search results will only show the 
first 100 results, with the closest 
connections showing at the top of the results. For instance, when I search for 
"Java Developer" my first 100 results are all 1st or 2nd degree connections. LinkedIn does give the option of searching by 3rd degree connections and 
beyond as well, but those profiles are going to have their information 
locked from me so I can't see if you're actually qualified (there are ways 
around this, but it becomes time consuming).

Now, if a person is lucky enough to have an employer, or if they themselves, 
invest in a paid recruiter account then the degree of connection won't 
matter as much, the searches are limited to 1,000 results. In this case the 
right keyword and keyword density will matter much more.


LinkedIn Glitch 

Video of glitch: 




There is currently a contact setting glitch. When you make any changes to your “Advice for Contacting” section you're message settings will all be turned off. This means you will not be able to receive InMails from LinkedIn Recruiter Accounts. You will have to go into your Account Setting to change them back.

This glitch is being reported to LinkedIn. In the meantime here's how to fix your settings.

To change these settings go to:

1. Privacy and Settings (move mouse over profile picture in top right)



















2. Communications section on the bottom left










3. Select the types of messages you're willing to receive
















I also like to add my contact info in the Summary section so it's right at the top of the page. 

Hope you found this guide useful!

Saturday, September 28, 2013

Coding Dojo Review: Day 19 Coding Dojo Senior Class Demo Day

The senior class had their Demo Day today. It was exciting to see what a person can accomplish with little to no coding experience in 9 weeks.

Projects that caught my attention the most:
  • Google Api with Facebook geolocation to track popular places friends visit
  • SMS survey built in Python ( this is something that the student decided to learn on her own)
  • Web app that is similar to meetup with Google API 
The biggest downside to Demo Day had to be the turnout. Most were the junior class and we had some prospective students. From what other students had heard it seems that the attendance of recruiters and employers has lessened as time went on. This is because they orginally wanted to see the caliber of students the school produced. Once they deemed to have gathered enough information they stope attending. I think this is a pretty big mistake to judge a school so early. The school is continuously improving its material, just today I heard we're going to be piloting a new JavaScript course and there were rumors that the course may be extended to 11 weeks in the future, no confirmation on that. 

Overall: I knew beforehand what the turnout was going to be like by reading past student's blogs, others in the class had attended past Demo Days, still there were some that were surprised by the turnout. Prospective students have to be aware that this is a pretty new school and it's going to take time to establish itself. Past students still visit the Dojo and they talk about their interviews, job offers, and call in when they accepted positions. 

I came in fully aware that I will have to network on my own if I wanted to land a position quickly after graduation. So if you were planning on a school's Demo Day to land you a position you might want to change that mindset, you can't be afraid of doing the legwork. 

Thursday, September 26, 2013

Coding Dojo Review: Day 18 O the Syntax Errors!!

Spent a good hour figuring out what was breaking my JavaScript. Misplaced a "$" after a period in the $.post. That for some reason also broke the functions before it. Finished my AJAX basic assignment. Going to spend tomorrow and the weekend working on advanced AJAX, APIs, and my Greenbelt exam covering MySQL and PHP.

Overall: Progress feels slow. Debugging is a way of life. Must test/validate whenever possible.

Tomorrow is the senior class' demo day. The junior class has to help setup and cleanup. Can't wait to see everyones projects! =)

Wednesday, September 25, 2013

Coding Dojo Review: Day 16 and 17 AJAX ARGGGG

This is the first time I truly feel behind in the class. Wrapping my brain around how AJAX is processed. Today was suppose to be the last day of AJAX on the schedule (only 2 days total) and most people that finished it spent about a week. The tutorials that we're given didn't help much either. Some classmates told me that the instructors are redoing this part of the course so future students will be in better shape.

The scary thing is the next subject is OOP and we're only given 2 days for that as well. One of the people in my group has been on that section since last week. x_X. Not feeling the hope here.

Overall: This is a pretty depressing post, but it just means I have to put even more time in. I'm getting help from my classmates that are ahead and some of the are able to explain it better, luckily one of them is my roommate Jeff =). He just spent 30 minutes walking through the first AJAX assignment with me. Super nice guy! He definitely cleared up a lot of the procedures that was missing in the lessons.

Tuesday, September 24, 2013

Coding Dojo Review: Day 15 Wall

Got my wall to start working yesterday! It is now able to post messages with correct username and and date times. I'm going to work on making it more efficient today with the messages loading once the page loads by transferring the mysql queries to the wall page instead of continuously traveling back and forth between the process page.

Hopefully starting AJAX by end of the day.

Overall: Lecture on AJAX today, wow, it was a lot of info. Definitely recommend being at least 1 day ahead of the lecture. It goes over information pretty fast and you will have better questions if you attempted the functions beforehand.

Saturday, September 21, 2013

Coding Dojo Review: Day 14 End of Week 3

Can't believe it's already been 3 weeks. I finally got my database to connect to the registration page. Over this weekend I will push forward to complete the wall assignment.

Overall: Many of us are hitting walls pretty frequently now. Every assignment is taking at least a day or two because of the concepts and the littles error causes the entire program to crash. The biggest one has been white space error in php. When starting a php session and there's an extra line at the top of the page the entire program crashes.

Finishing PHP hopefully by Tuesday and starting AJAX.

Thursday, September 19, 2013

Coding Dojo Review: Day 13 Connections / MySql

Finally finished part 1 of 3 for the forms. I had thought I finished 2 of 3, but was sadly mistaken. The way the videos are laid out has been more confusing than other sections. In this part I am finally going to be connecting the front-end to the databases. The assignment is transfer the information received from the registration page to the proper tables in database I set up so it can be used for a log in that will bring the user to a comment wall.

I was really excited when I thought I had completed part 2 and moved on to the final assignment. There I met with hours of confusion and being overwhelmed. I thought there were the no transition between making a regular form to creating the wall and I would have to figure everything out myself. A challenge I thought to myself, and I believed I was up for it. Well I had it wrong, for better or worse. I'm going to spend most of tomorrow learning how to connect the two and move on to the final assignment hopefully by the end of the day.

Overall: I strongly feel Coding Dojo needs to redo their videos and the way they are structured. While they contain the information that will get you through the assignment there is a lot of signs that they didn't plan the taping beforehand well enough. Not knowing where certain buttons are, correcting formating, and pointing out mistakes with diagrams for 10-20 seconds. These video tutorials is a staple of the course and more dedication to them is needed.

Having this library of videos and instruction is a huge plus in the future. All students will keep having access to them as they update information.

Wednesday, September 18, 2013

Coding Dojo Review: Day 12 Take a Walk / Frustrations

PHP has definitely been tough for many of us in the class, some more than others. It's where we start connecting the front-end to the back-end, and where there are many moving parts many things can go wrong.

Sometimes you just have to get up and take a walk, get away from the keyboard. Over the weekend I had many of these moments whether it outside of plopping facedown on our gigantic bean bag chair. There's defintely a lot of venting (think of some choice words), but when that problem is finally solved the fists goes up in victory and it's like we can finally breathe. Well, at least till we click the tab to the next assignment x_X.

I've been hitting a wall with the Forms sections. $_SESSION variables aren't working the way I thought they would, adding in CSS with error messages not showing up and might cause me to re-write a large portion of my code or force me to ID every label is driving me nuts. The funny thing is, the last part of this section is actually building a wall, like a wall where users post/comment things. So hitting a wall might become more literal than expected in a day or two.

Overall: Almost done with Part 1 of 3 of my current PHP section. Definitely utilizing the TAs in class and the ones in the Phillipines a lot more. The struggle is there, but sometimes you need the guidance and that's where bootcamps like Coding Dojo pay off. Helping in critical times like these helps push pass parts where a person needs very specific knowledge if a student is unable to find it in documentation, or if things mentioned on sources like StackOverflow include functions we're barred from using.

Tuesday, September 17, 2013

Coding Dojo Review: Day 11 Forms

Finished up my Fundamental PHP course which runs through the basics of programming (for loops, variables, functions, etc). I'm going on to learn about forms, specifically login forms. There is going to aspects of security in here since these are the ones that ask a user to register username/email/passwords. 

I also took the time to speak to some of the senior class at Coding Dojo. They're going to have their Demo Day by the end of next week! A few of them felt that there definitely isn't enough time to do everything they want. This mostly pertains to learning Rails and utilizing it in their projects. The course as it is now only cover Rails for 1 week and then the week after is used for personal project(s). Though a student did say that a few of his classmates are building their projects with Rails as a main component so it's like 2 weeks of Rails for them, but it's definitely a "do while learning" process. 

Overall: I'm glad I took the extra time this week to get ahead of the course lecture even if it is only a day or two. Knowing the limited amount of time we're going to have for projects I'm going to be spending more time on weekends. Goal is to finish the primary course work a week ahead of schedule to give myself another week to flesh out my project. While the backend work is necessary to make the program work the student I spoke with brought up a good point about UI. Backend tends to be under-appreciated. During the last Demo Day a lot of people really only took a minute or two testing the apps. UI plays a big part in keeping their attention. This should have been a no brainer, but when you're working so much on backend and the time it takes design takes a backseat. I have to start making my assignments look prettier, instead of a bare bones layout that just works, to keep up my CSS skills. Most likely utilize Twitter Bootstrap more. 

Monday, September 16, 2013

Coding Dojo Review: Day 10 PHP

This week is going to be focused on PHP. I spent a most of the weekend coding and a bit a head of the schedule (probably about a day's worth).

Lectures covering PHP is very similar to JavaScript. The functions are mostly same. The things that drive me crazy is missing the '$' before variables. Over the weekend I wracked my brain for hours and finally asked my roommate for help. What do you know? It looked very similar to one of my first attempts, problem with that I left out the '$' when using it in my index x_X. Hours of trying different things and I ended up reverting back to something very close to what I had to begin with.

Overall: It's crazy to think how much a person's perspective can change over the course of doing a few assignments. After finishing 3-4 more exercises today I went back to a PHP exercise that only had CSS left. I ended up refactoring most of the code since it was so sloppy. And there were definitely signs of desperation with trying HTML tags where they didn't belong to get things to display right.

Off to bed now, and another day of coding awaits!

Coding Dojo Review: Passed My Yellow Belt Exam! (HTML/CSS/jQuery)

Super excited about the email I revied when waking up. Passed my HTML/CSS/jQuery exam with a 9.5/10. I was worried since I didn't have time to finish, but again, most of the incomplete work were concepts that I have already completed within other parts of the webpage.

Part of the exam is making a screen capture of the webpage to demo it for the grader. Here we are given a chance to walk through the webpage and explain what worked and didn't work. I used this time as an oppurtunity to explain what I didn't finished and how I could accomplish the tasks while pointing out the different areas of the webpage that I have already executed the concepts required.

Over the weekend I also finished 3 assignments in PHP. Driving me nuts with some of the little mistakes like forgetting a "$" and when to echo out html like "<select>" grrrr.. Thankfully my roommate is going through the same course and was able to help pinpoint them. So helpful to have someone else review your code!

Friday, September 13, 2013

Coding Dojo Review: Day 9 End of Week 2 / Yellow Belt Exam

Yellow Belt Exam!

Consisting of HTML / CSS / jQuery. ~4 hours to complete a web page replication. Definitely tough considering it took most of us 8 hours per web page replication in previous assignments. A good amount of the students got it done, unfortunately I was not one of them. Only had 2-3 more to do (floating unorder-lists, giving divs dimensions, and the like). I got stuck on one part for an hour and that just sucked away the time. Estimate another 10-15 minutes to complete it. It's pretty aggrevating to know you're at the final steps and just run out of time. Hopefully I completed enough to still pass since the remainder of the page were tasks that mirrored ones I already completed for the during the exam.

Overall: My code was pretty darn clean for the exam. I measured everything out and drew diagrams before starting the code and I think having that really help me design the page so boxes weren't horribly off in size and weren't colliding with other objects. I'm pretty happy to see how much I can accomplish in 4 hours now where it would have taken me twice the time a week ago.

I also want to start using in-line blocks more instead of relying on floats. I'm one of the few people in class that uses floats regulary and don't really have a problem with them. I find them faster than using in-blocks since I always have them set within certain divs. But it's always good to change it up and use different tools that are available to us.

Going to code for a good amount of this weekend. Finishing up my week's assignment and getting started on PHP in preparation for next week's course.

Coding Dojo Review: Day 8

SQL Queries and Database Designs

Finished the required assignments on SQL queries. It was fairly straight forward when I got the logic down. There was one function that wasn't explained well on W3schools, the LIKE function. It is used when searching for a value in a column where that column has more than one value so setting an "=" will not return all the results. Thankfully a classmate worked on SQL queries in his recent position helped explain it.

LIKE "%text": will search for values before text.

LIKE "text%": will search for values after text.

LIKE "%text%": will search for values before and after text.

The last one is the most helpful if you don't know where "text" is placed in the column.

Database design / ERD is a lot tougher for me. I sat down with a different classmate that did database designs previously for an hour trying to wrap my head around it. Think I have most of it down where my diagrams can make sense now. Still gotta finish up the assignments for this portion.

Overall: I'm extrememly happy that I'm in an environment with people from different backgrounds. We all bring different sets of experience with us. Looking at the way they code is quite interesting too. Working through their thought process and seeing if there is something I would be better off adopting/incorporating when I code.

Thursday, September 12, 2013

Coding Dojo Review: Day 7

Databases


Moving on to designing databases. Learning how to use MySQL and running SQL Queries. We're utilizing MySQL Workbench for most of our work though we can also run it through our localhost. 

The course material isn't as straight forward as the HTML/CSS/jQuery courses. Had to go back and forth between some videos. Doing the SQL Queries first instead of the ERD (diagrams for designing databases). 

Can't wait to start connecting databases to websites.

Wednesday, September 11, 2013

Coding Dojo Review: Day 6

Finished Front-End

Lecture involved DOM tree and more efficient ways to write code so it doesn't waste resources.

This was the last day for HTML/CSS/jQuery section. Moving on to the back-end.

Monday, September 9, 2013

Coding Dojo Review: Day 5

jQuery Away! 

Well.. more like 5 hours of reading and trying to under their documentation. Was feeling a bit under the weather today and reading technical documentation is a good alternative to taking a sleeping pill (or a bottle's worth).

I also got to use jQuery UI. Definitely makes front-end design easier.

Overall: Working with libraries is pretty straight forward. I'm super impressed that people created and decided to share all their hardwork with the community. To replicate anything close to to one of these libraries would take years. Anything from calander apps to sortable lists are there was a few lines of code when it would originall take 50-100 lines, and that's if it would even work/look right. Thanks to every developer who contributed to these wonderful libraries! =)

Sunday, September 8, 2013

Coding Dojo Review: Day 4

End of the first week and HTML/CSS classes. The day's lecture covered zeroing-out, normalizing, and Twitter Bootstrap.

Over this weekend I finished my last webpage replication assignment as well as re-doing my first blog assignment (pure HTML) by adding in Twitter Bootstrap (version 3). It's crazy to see 6,805 lines of CSS. Have to take the time in the future to go through it.

I also started learning jQuery. Going through the documentation right now and will start the jQuery classes starting tomorrow. Can't wait to make my websites all interactive =).

Thursday, September 5, 2013

Coding Dojo Review: Day 3

More CSS! And Group Assignment! 


So most of the class have finished their first and some their 2nd website replication. This morning we were suprised with a group assignment! Replicate a website page in about 1.5 hrs. Currently most of us have been taking ~6hrs to replicate each page. Each group had about 4-5 people so this was reasonable if all the work was divided.

Most of us came pretty close to replicating the webpage within the allotted time. The biggest challenge is when we put all the HTML and CSS together. For HTML if some forgot to close a tag it carried over to the rest of the code. With CSS some duplicate code caused things to mis-align and text to overflow.

Overall: I'm quite happy with how I'm progressing through this course. While the webpages we have to replicate is getting progressively harder the amount of time required stays relatively the same. Our instructor, Dexter, also built out the first webpage in 45 minutes to show us how he would do it. Going back I would be confident that it would take me about 45-60 minutes to replicate the first site from scratch now.




Wednesday, September 4, 2013

Coding Dojo Review: Day 2

CSS: It's all about making things pretty! 

Woke up at 5am today. Either the time difference from the east coast is having more of an effect on me than I originally thought, or this is just mentally exhausting causing me to sleep much earlier. Probably a bit of both. 

Started and finished assignment 1 of 4 for the CSS portion of the bootcamp. These assignments involve replicating static websites. All those text boxes I took for granted in blogger, now I have to not only make them myself, position them too. Each website get progresses in difficulty. The first one was a plain website with texts and hyperlinks. The second one includes a banner, picture, search bar, and more. 

It's pretty overwhelming when looking at a new website to replicate (on my second one). Brain is just digesting all the CSS that needs to be done, calculating how many pixels is a box away from a boarder and the dimensions of every textbox / container. Breaking down the overall layout with divs has helped calm my mind a lot in these beginning stages. Once the page is laid out everything seems much more doable. Proabably most of the page is now filled with boxes so it's not a blank canvas staring you in the face. 

Overall: I definitely feel that it was a good idea to come to this bootcamp. Working with people on the same assignments helps tremendously when stuck. Today some of my code kept breaking because I had closed a link tag in the wrong place while nesting another unordered list in it. The selectors I was using kept breaking because of this and I wasn't able to modify the nested list. With the help of a TA who figured out the problem in a matter of minutes (after I had another student look at it) I was able to move on. Problems like these would have taken me hours to figure out by myself. It's something that's not easily recognizable as "wrong" and may have taken days to figure it out with the help of online communities.   

If nothing goes wrong the amout of work completed should be similar if I was working by myself, but things go wrong, and often. This is when working in bootcamps like Coding Dojo saves expotential amount of time. Even when working by myself the amount of time dedicated in a single day at Coding Dojo can sometimes be equivalent to a week working alone due to work and other obligations. 

CSS until the end of the week. Looking to complete my second CSS assignment and moving onto the third. 

Tuesday, September 3, 2013

Coding Dojo Review: Day 1

Day 1 at Coding Dojo! 


My first impression: they have way more space than I thought. They have at least 3 spaces in the plaza and apparently opening up another school in the Seattle area.

What we learned: 


  • 1 hour lecture of an overview of what front-end, back-end, database, and servers are
  • Setting up local development environment
  • Intro to HTML and a lot of us started on CSS 
Teaching / Learning Environment: 

  • 1 instructor, 2-3 on-site TAs, and 3 off-site TAs in the Phillipines (everyone was very responsive)
  • A lot of the materials are online using their platform (instructional videos, document materials, and, assignments)
Food! 

Yes! There's a food section as Coding Dojo provides lunch and dinner. We had Mediterranean for lunch and Hawaiian BBQ for dinner. That dinner was awesome. Have to say originally thought they would just be feeding us sandwiches, salads, and fruit so I was blown away with what they provided meal wise. 

Overall

Good first day. Wasn't that overwhelming since I went over HTML/CSS track in CodeAcademy. Feedback from other students say that the assignments for CSS take a lot longer due to positioning of each pixel and getting colors right. 

I also liked that so much of the material is online since it makes working on the assignments a lot easier when away from the school. First day went from 8:30 am to 6 pm though many people stayed later. 

Friday, August 23, 2013

August Goals: Completed! And Other BIG News!

Just finished the JavaScript track from Codeacademy 2 days ago. I have also completed 1 wireframe for a site I want to complete over the next few months.

BIG NEWS TIME

I'm moving to California for the next 3 months and attending a coding bootcamp called Coding Dojo. It's located in Mountain View right near Google and Facebook. I'm sure I will throwing some pebbles at their windows to woo them sometime in the near future =). 

More about this decision in my next post. Happy Coding! 

Monday, July 29, 2013

CodeAcademy HTML/CSS Track Completed!!

Finished the CodeAcademy HTML/CSS track tonight. This portion of my monthly goal is finished 2 days earlier than expected and now I'm onto JavaScript!

Mini Review: HTML/CSS vs. Ruby Track


This course was sloppy in the beginning. By this comment I mean that the html coding wasn't carried over from one exercise to the next for the first few lessons. This eventually gets corrected.

The big difference between the HTML/CSS track versus the Ruby track is that HTML/CSS we're given a lot of instruction so it was more like a guidebook. Ruby was more problem solving. The difference maybe the difference between front-end and back-end. Where the former is about design and how the user interacts with a website, while the latter is about how the website/application functions where the user doesn't see it.

Switching between these two tracks made me realize a truth, use it or lose it. Going back to the QA forums I don't even understand the answers I provided a month ago. The syntax memorization is just not there, but the thankfully the logic is. In the end I believe that is what matters more. A language only helps you complete the task and you can always pick another language to complete the same task. Now, the logic behind it is irreplacable. The way a programmer has to think is carried over no matter which language they choose to write in.

Saturday, July 13, 2013

CodeAcademy Ruby Track: Completed

Whooo!!!

This took much longer than I had originally thought. It took exactly 1 day over 2 months to complete the whole thing. A lot of the delay was due to the crushing defeat by the App Academy Challenge.

This event like most completed tasks or graduations in my life, it wasn't exciting in itself. I get more of a "so what's next?" feeling.

So for my upcoming goals:


  • Finish JavaScript track by end of July
  • Finish HTML/CSS track by 2nd week of August
Edit: going to flip those goals. HTML/CSS track before JavaScript (July 14, 2013)

One thing I did notice is that I'm not intimidated by new material. That overwhelming sensation is subsiding into more of a "Challenge Accepted!" reaction. 

I have a week vacation coming up soon. Gonna spend it playing tennis, lazying about, and more coding!! Until next time! 

Wednesday, June 26, 2013

The Fundamentals of Failure

A little more than two weeks ago I took the App Academy Coding Challenge. Let me tell you, it kicked my butt. 1 hour to finish 3 questions and I was only half way through the 2nd question when time was up. Defeated.

It's important to know why failure sucks. It brings us back to reality.

  • That thing you thought you were really good at? => NOPE!! YOU SUCK!
  • Your Confidence => DEMOLISHED
  • Your Self Worth => DEMOTED
  • Your Motivation => DEFLATED
  • Your EGO => NON-EXISTENT

I like to point out that last one because it's not a bad thing. Yes, right after failing you feel all of these things. Like you were King of the Mountain conquering CodeAcademy's lessons then the bully from App Academy came over and KICKED YOU OFF THE MOUNTAIN!

WANNABES vs. DOERBES


Now what to do with yourself? This is the important fork in the road. Give Up? Or Try Again? This is the point where we separate the Wannabes from the Doerbes.

Wannabes – Oh how they want and want. They think about all the things they can accomplish and all their potential while only realizing a fraction of it. This dreams of things, but when it comes time to put in the hard work they back down, or when they meet their first obstacle or defeat they give up. I feel that most people are Wannabes because it's easy to just want things, but few ever turn into Doerbes.

Doerbes – While Wannabes want and want, Doerbes tries and tries. I picture them as an inventor, struggling after many failures to earn success. A Doerbe is characterized by their continuous efforts even after initial failure(s).

I took a fairly long break from coding, but I'm getting back to it. I also received some major news in the past few days that I will share in the future.


Now, lets get back to coding.  

Sunday, May 26, 2013

What Does the Exclamation Mark "!" do in Ruby?

Okay, had a break through of the meaning of the "!" while testing in the project for Lesson 4.

Original description of the "!" was with other methods like .reverse or .capitalize. It was said that these methods only made a copy of the value and that by adding "!" it would replace it. At first I thought it was just writing extra lines of code that couldn't be seen. What it actually does is replace the variable out permanently whereas without it the output would only be changed in that one instance.

Examples (Orange = input ; White = output):

1. This only changes the output once.




2. Same as above. The original reverse is not in the output because there was no print / puts command.





3. This changes the variable forever! Now "x" is always reversed.







This is what "!" does for methods like .capitalize and .reverse. There might be more to this function in the future.

Wednesday, May 22, 2013

Ruby Lesson 3 and Setbacks

This is my second time going through Lesson 3. The first time I got to the Project portion and realized I needed to take notes, hence this blog. Now the second time over it's still confusing me, hopefully writing it all out will clarify some confusion. 

Lesson 3 itself isn't bad at all, it's the Project that tosses them all together that's the problem. Maybe it's me, maybe it's the way Codeacademy explains the steps, or maybe assimilating all the knowledge and applying it is more of a challenge than I thought. Either way, I'm not givin' up.

Ruby Lesson 2 Section 4 of 4 and Project: Review and Thith Meanth War!

I am going to take this time to reflect that these lessons are the foundations of Ruby. As such it is important to know 100% of what is being taught, not 99%. This is because any small holes in our knowledge now can easily destroy a program later on. Remember, it only takes one bad line of code to crash a program.

Monday, May 20, 2013

Sunday, May 19, 2013

Ruby Lesson 2 Section 1: Introduction to Control Flow

Section Topics 

  • Control Flow
  • expression / if 
  • else
  • elsif
  • unless
Control Flow gives us flexibility in the repsonse Ruby will return. Think about it like a do it yourself fantasy book where you given a story and choices. The story will change depending on the choices you  make. This is the same with control flow, Ruby will return a designated response (choosing which block of code to run) depending on the user input.

Saturday, May 18, 2013

Ruby Lesson 1 Project: Putting the Form in Formmatter

With the exception of Lesson 8, which is dubbed a challenge instead of of a course like the others, each lesson has a project to complete. These projects seem to incorporate much of what is learned throughout the lesson and add some new material as well. The posts on these projects will simply be about the new material presented. 

Materials Presented 
  • Prompting the User
  • gets 
  • .chomp
  • .capitalize
  • "!" 
  • "#{}" String Interpolation 

When looking for user input we would usually ask a questions like "How old are you?" or "What's your favorite color?" To display these questions we would input commands like the "puts" and "print". 

Tuesday, May 14, 2013

Ruby Lesson 1 Section 4 of 4 Review

Even though this is a review I learned something about methods. Originally I stated that we can have multiple methods on one line. While this is true Ruby will can have them on separate lines and it will have the same output.

Ruby Lesson 1 Section 3: Writing Good Code

Section Topics: 


  • Single-Line Comments
  • Multi-Line Comments
  • Naming Conventions 

Comments 


To start off, why do we need comments in coding? These are some of the reasons I can think of:

Ruby Lesson 1 Section 2 of 4: String Methods

Section Topics:


  • .length 
  • .reverse
  • .upcase and .downcase 

So methods are like commands except for the following (that I know of): 
  1. A period is used before a method 
  2. You can have more than one method on a line and Ruby will follow the sequence from left to right

Monday, May 13, 2013

Ruby Lesson 1 Section 1 of 4: Variables and Data Types

Section Topics:


  • Data Types: Numbers, Booleans, Strings
  • Variables 
  • Math
  • puts and print

There are 3 Data Types: Numbers, Booleans, and Strings

Sunday, May 12, 2013

Birthdays and Accomplishments

Birthdays and New Years, birthdays and New Years. Barring major events, are two consistent times when people ask themselves "What have I done with my life?" It's a question that does not often have a pleasant response and can cause a person to re-evaluate their life.

Saturday, May 11, 2013

Why This Blog Exists

I started on my journey of learning Ruby coding a few months back on an on again off again basis. I started to get serious about learning again in the past few weeks utilizing tools like codeacademy.com. I was completing about a course a day when hit the course "Project: Redacted!" I realized that I didn't remember anything. I had to keep looking back at past courses/exercises to get the formatting and commands right, this wasn't working out.

I remember reading a post on advanced note taking and how someone finished a computer science course at MIT in a year (I will post link later when I find it). So this is reason for the blog. To document what I've learned as a way to help me remember.

Update: Here's the link http://calnewport.com/blog/2012/10/26/mastering-linear-algebra-in-10-days-astounding-experiments-in-ultra-learning/

Accomplishment: Started blog.