100 days of code
Today is only the third day of the camp and we already have a homework assignment due tomorrow. Our first homework is to create our own portfolio site using HTML/CSS. We have to recreate a basic design given to us, entirely from scratch.
I decided to create a running list of things that I don’t understand yet and to practice using these in my spare time. As of right now, I still don’t have a clear understand of:
I have to understand these concepts before I could create my site and it may take a few days to sink in. Fortunately, the instructor understood that this was quite a fast turn around for a first homework and he urged us to turn in what we have, even if we’re not happy with it. My portfolio didn’t quite look exactly like the example we were supposed to re-create, but I think it’s a decent start.
Assignment #1 Basic Portfolio Website
My plan is to just re-work the past assignments and try to grasp the new concepts by reading about them in various sources. I know it’ll just be a matter of time until all of this, clicks. For now, it’s a decent starting point and I’m excited to see my progress throughout this camp.
100 days of code
Day two of the bootcamp and we’ve already covered a ton of material and I’m trying my best to digest it all. A little overwhelmed, to be honest. I realize now that I’m going to have to drastically adjust my schedule, if I’m going to do well in this bootcamp.
I planned on exercising before class, but I see now that I may have to cut that back to 45 mins-an hour and use the rest of that time to code and review material. In my initial daily schedule, I wrote down that I planned on going to bed by 9pm and I laugh at that now, because I don’t see that happening, at all.
I’ve been taking the teacher’s advice and using the command line, instead of the GUI, for making folders and organizing them. I just created folders and skeleton HTML/CSS files using the command line over and over again and I learned the commands to use for GitHub. This looked really complicated at first, but I think I’m getting the hang of it.
As soon as I’m able to, I’m going to set up my coding practice the way I set up my painting routine. I would never finish a painting in one sitting. I usually start on 7-8 paintings at once and I jump from painting to painting; adding a stroke here and there until they are all finished at the same time. I can see now that GitHub is the perfect tool to do just that; but with code. I’ll set up 7-8 skeleton files and work on different projects little by little until I finish them all.
For those interested, here are the common command line and GitHub commands that I find myself using over and over. It looks complex, but once you know them, you don’t even think about them anymore.
COMMAND LINE COMMANDS:
cd ‘folder’ (change to whatever folder (or directory) you choose)
cd ~ (change directory to home)
ls (list what’s inside the current directory you’re in)
mkdir (make a new directory or folder)
touch ‘filename’ (creates a new file inside your current directory)
git status: check the status of the repo
git add file_name: add one file
git add .: add all files
git commit -m “commit message”: commit your files along with a message. (Do the “-m commit message” to avoid going into the twilight zone. That’s what my teacher said. lol)
git remote add origin ‘https://github.com/username/reponame.git' - the remote url to your GitHub repo
git push origin master - push your files up to GitHub on the master branch (better to use it solo, not on group projects)
git push - push to remote repository
git pull - pull latest from remote repository
git clone - clone repository into a new directory
100 days of code
Today is the first day of the bootcamp and I just got my buzz card.
There’s about 30 of us in the bootcamp and it seems like everyone has a better grasp of the material than me.
I found out real quick today just how important it is to be able to use the command line. It turns out we’ll be using the command line and Github pretty much everyday, so one of my main priorities is to get comfortable with them FAST. They have their own set of commands and it’s good to memorize some until they come naturally. My plan is to practice working with the command line or terminal after class and practice committing and pushing on GitHub.
I also asked the instructor if there were any apps where you can practice working with the command line. He sent me a few links for games and practice exercises; but he said the best practice is to just work with the command line on a daily basis and try to do things with it that you normally do on the GUI.
I’m thoroughly impressed with the bootcamp system. It seems like they’re covering every angle to ensure that their students succeed. All of the classes/lectures are video recorded and so are the presentation slides.
Today, I spaced out briefly in class and missed a few key points during the lecture and was lost the rest of the time. I went home, replayed the video, found the exact spot I missed and just like that I’m caught up again. I have a feeling I’ll be replaying all of the videos throughout this camp and I’m ok with that. It made me wonder though why we don’t have bootcamps in the art or music world. It seems like a very effective way of learning a skill; but I’ll save that for another post.
After today, I got a sense of how much information they’re going to pack in these 12 weeks and how fast they’re going to come. As of right now, I only have a basic understanding of HTML/CSS and I feel like they’ve already covered everything I know. lol
Overall, it was a good first day. Excited and nervous about this new journey and I know I have a lot of work ahead of me. My plan is to just reinforce the info with Team Treehouse and code, code, code, as soon as I figure out a good workflow.
100 days of code
Tomorrow is officially the first day of the coding bootcamp. I’m super excited and it feels like it’s the first day of school again. I got my clothes, gym bag and laptop bag ready and soon we’ll find out if I’m right where I need to be or if I’m way out of my league. This could either be a huge life-changing “W” or a huge debt-ridden “L”. I know ultimately, it will be up to me to make the most of this camp and I feel like I’m ready. I did well with the pre-work assignments and it revealed what I need to work on.
Today, I spent the whole day cleaning and organizing everything. I cleaned out our house, my car, organized the desktop and got my inbox down to zero. I turned off all of my notifications for Facebook, Instagram, Twitter and all emails to eliminate distractions for the entire 12 weeks. Got an early start tomorrow, so I need to make sure to get a good night’s rest.
100 days of code
Essential Tools for Coding
Before the bootcamp starts, we were instructed to install all of the programs and services we’ll be using throughout the course. Here is the list they gave us:
Chrome Dev Tools
Visual Studio Code
Some of these I know about and have used in the past, but several are new to me.
LinkedIn is a web app for networking and showcasing your portfolio and it caters towards professionals from a variety of fields. It’s a way for potential employers to find your resume and a way to find opportunities and jobs in your chosen field. GitHub and StackOverflow are similar to LinkedIn but geared towards developers, web designers and software engineers. It’s a way to showcase your code and find jobs in the tech field. I have not used GitHub or StackOverflow yet, but I have signed up for an account.
Github seems complicated and requires knowledge and experience of working with the terminal or command line. They also have new words (to me) like “repositories” and “refactor” that make things seem more complicated than they are. And I’m still trying to figure out why they do that. I haven’t used Github yet, but just from reading about it, “repositories” is the place where you put your finished projects or code. “Refactor” means to edit or make changes to your code. “Commit” means to upload your code and that’s about all I know about GitHub. My question is why not just say, “projects” or “edit” or “upload” instead of “repositories”, “refactor” or “commit”. Seems like it would make it way easier and less intimidating to beginners. There’s probably a logical reason as to why they call it that and maybe it’s not even worth obsessing over, so moving on.
Slack is a tool for communicating with our fellow students, TA’s and instructors. It’s a way to stay up to date on projects and deadlines. It’s like Facebook Messenger, but fancier.
They recommended using Google Chrome as our browser, mainly for its developer tools. Screencastify is a tool for making screen captures, so you can record what you’re viewing on the screen. I usually use Quicktime for that, but this seems to have more options and features. The Chrome Dev Tools is a new tool that I think I need to study and master. They always mention Chrome dev tools in my Team Treehouse courses and I can see why it’s so useful. It’s basically a way to see the code behind websites or apps. Any website you view on Google Chrome, you can see the HTML and CSS behind it and edit or debug with the dev tools. A friend of mine from high school told me was able to land a Python gig after only a year of self teaching and the way he did it was through debugging other people’s software and contributing to open source projects. This is why I think Chrome dev tools is an important tool to master as it is very useful in debugging and playing around with code.
Visual Studio Code is just a text editor. I’ve used Sublime Text in the past, but thought I’d download this so that I’ll be on the same page as everyone in the class. A text editor is where you type your code and organize it into files. I see it as the canvas and paintbrush of the digital world. Xcode is another text editor and I think it was created by Apple. I’m not sure why we’d need to use two text editors, but I’m excited to find out why.
Git and Gitlab, I’m not sure about. I think they’re similar to Github, but I don’t know. Heroku is a way of deploying your finished app or web site. I think it’s similar to GitHub, but I’m not sure. The rest - Homebrew, MAMP, Node.js, and SSH Key, I’m still not sure what they’re all about, but hopefully they’ll become more clear as the weeks go by.
100 days of code
I’ve been self teaching for about a year now and I found a strategy that works for me. I find that when I hear the same information from different sources, I retain it better and I make it a habit of seeing the same problem worked in different ways. The same way when I’m looking for a sunday gravy recipe… I tend to watch 7-8 cooking videos on Youtube for the same recipe. I observe what those 7-8 cooks are doing and what they all share in common, in terms of technique and ingredients.
I like to approach learning how to code in a similar manner. I’m currently enrolled in Team Treehouse and slowly working through several courses on Udemy. I’m also listening to coding podcasts and talks and this helps me figure out what the essentials are. You also find out how to do things and how not to do things.
One of the early CSS classes I took on Udemy was terrible. Even though I was a complete beginner, I could tell something didn’t feel right about the code, but I thought it was ok to do it this way since the final product seemed to function. The Udemy instructor kept using the CSS command “!important” on several lines right off the bat. Later, I find out that the command “!important” should only be used sparingly, but this asshole instructor had about 8 in the first 30 lines. The nerve of that guy to teach a course like that…but I digress.
Another early principle I learned is to “keep the CSS dry”. D.R.Y. stands for Don’t Repeat Yourself. The two sets of code below are the same exact code. They do the exact same and look the same on the screen. The only difference is that the first set has a lot of repeated commands. They have the “color” and “padding-top and bottom” repeated 3 times in the first set of code. The second version has no repeats and has less words. It’s easier on the eyes and easy to update or debug later on.
I’m not sure of the exact quote, but there’s a famous saying among chefs that said something like: a good chef’s goal is to make the best meal with as few ingredients as possible. I think it’s good to approach writing code in this way. There are, of course, times where it’s a good idea to repeat yourself, but as a general rule, I try to keep the CSS as “dry” as possible.
100 days of code
Another one of our Pre-work assignments is to research different jobs on Indeed and make a list of the technologies they require and words that we may not be familiar with. We then had to define those words and acronyms and try to understand how they relate to each other. I searched for “fullstack developer”, “web designer” and “UI/UX designer” in the Atlanta area and the same keywords and acronyms kept coming up. To be honest, even after defining some of these words, I still don’t fully understand what they mean. The good thing about making a list of unfamiliar words is that my ears perk up now every time I hear them on a podcast or tutorial and slowly, I begin to understand how they relate to each other.
There are also some new changes in CSS that allow developers more control over the animation, layout and responsiveness of a website or app. “Responsiveness” just means you can view the app on a desktop, tablet or phone and the design still looks cool. The new CSS features came about just in the past 2-3 years and it seems to allow developers to write less code than they previously had to.
Bootstrap is a CSS framework that I’m currently debating whether or not to study. From what I can gather, it’s a technology that allows you to create cookie cutter websites really fast. And I don’t think I’m a fan of that. I don’t know much about it, but I have yet to be convinced of why it’s important to learn. To me, Bootstrap is just a way to create websites quickly, but it’ll look like everyone else’s. My question is, why not just use a CMS site like Wordpress or Weebly? (if you want fast and easy) Then again, I have not used Bootstrap that much, so I don’t want to talk shit about it because I may change my mind later.
100 days of code
One of our Pre-Work assignments is to write a few paragraphs about what we’re excited to learn from the bootcamp and what coding skills will do for our career and life. And that answer was easy. I just look around and listen to my friends and family and see how technology can assist them in whatever they’re doing.
For example: My mom has been working at an accounting firm for over 20 years and I want to find ways to assist her with her work. After I did some research on AI and how automation can help with bookkeeping and other repetitive tasks; that made me curious about learning a backend language like Python. Most of my friends growing up are musicians and artists. Some are playing Carnegie Halls now and touring the world with their musical skills, but most are just scraping by playing dive bars and busking on street corners for lunch money. Same level of chops and musicality, but instead of steak chops and lobster, it’s ramen noodles and wheat toast.
What if I could create a road manager app that can assist independent musicians with touring and at the same time help with marketing and promotions at whatever city they’re in. Or an app that can connect live music fans to their favorite local musicians and be able to support their endeavors and receive merch or drink discounts at their favorite spot, in return. I know too many talented painters and artists working side gigs on weekends while their gallery managers are taking day trips for a bloody mary light brunch. There are more full time gallery owners than there are full time painters making a comfortable living and I see a problem with that. The galleries wouldn’t exist without the art. I think the gallery system is an outdated system that needs to be abolished. Artists can connect with collectors directly now and technology is what’s allowing that to happen. What if there was an app that connects independent artists with collectors, interior designs and patrons worldwide. Why isn’t there a Linkedin for people who just want to paint and make live music? There are so many apps and games being made to enable us to consume, consume, consume and not enough to help us create; in my opinion.
These are just some ideas I have floating around and that’s what drives me to learn how to code. I’m seeing so many ways it can enhance the lives of those around me especially in the art world. It’s such a useful skill to have in this day and age and the more I look into it, the more I see how much of a demand there really is for good coders. I heard something on a coding podcast that I’ll never forget. They were interviewing a bootcamp instructor and he said that Amazon is scaling so fast, in terms of their demand for coders…that they could theoretically hire every single Computer Science major in the U.S. for the next five years and still not have enough coders to fill the jobs. I just thought that was amazing. And that’s only Amazon! What about all of the other big tech companies like Google, Apple, Facebook, etc.? Not to mention the hundreds of new tech startups popping up every year that need coders.
I heard on another podcast that these tech companies pay so much and hire so often because they have a hard time keeping people. The good coders end up leaving after a few years to start their own biz or they bounce around other tech companies. I’ve seen Google hire a 14 year old programmer and a 50 year old. From what I can gather, these tech companies care more about your portfolio, thought process and your soft skills and not necessarily your college degree or experience. I personally know people who have gotten jobs in silicon valley after just a year of self teaching. And I know I’m a long ways away from an engineer job at Apple, but it’s certainly something to aim for.
It’s a great time to learn code and I’m convinced that anyone can learn anything these days and hopefully I can show this blog as proof, one day.
100 days of code
But yeah, I’m excited about this new challenge and I’m looking forward to being in a classroom environment again. I’m already learning a lot from just the Pre-Work assignments. The bootcamp doesn’t start until January 7th, but I’ll be posting about what I’m doing in the meantime, to prepare.