The Zen of
Programming

25 Tips for New Developers: Advice from a (Mostly) Self-Taught Software Engineer

The most common question I get from blog readers is "What is your advice for new programmers?" So, I thought it was time to write up my thoughts. I will write up my full story in the future, but I took two computer science classes in college. Then, I got a software engineering internship shortly after. I started doing web development work, initially on the backend and then eventually on the frontend. My college definitely did not teach web development, let alone within the first few computer science classes, so I taught myself. I don't think my story is unique -- all programmers are self-taught to some degree, whether that's fully self-taught or that they have a masters in computer science, but they taught themselves RegEx along the way. In fact, self-teaching may be one of the most…

Continue reading...

Friday Wrap Up: August 3rd Edition

This week was insane! It was my last full week in Hartford, Connecticut after teaching a web development course for the past three months. Being away from DC has been really hard; I missed my friends and normal life a lot. But, without the distractions, I really focused on building my blog over the last few weeks which has turned out to be going pretty well so far! Speaking of, I hit the top of Hacker News yesterday for my post about my portfolio . If you're wondering what that looks like in terms of page views, here's an hour by hour look: I don't think my traffic was bad before either! I had 1,561 hits in the two weeks since launch! I've been giving people tips on their sites mostly via Twitter -- I've done about 25 so far and still have quite a few to look through! If you want me to…

Continue reading...

Building a Kickass Portfolio

According to GitHub, I have had a portfolio site since September 1st, 2016. And, according to Google Analytics, I got less than 300 views on the two iterations of my portfolio from September of 2016 through October of 2017. In October 2017, I did a complete rewrite of my site , and the results were pretty dramatic. I got 1,861 views the first month, and I've averaged around a thousand hits on a month since then. Of course, correlation is not causation, but I do think the redesign definitely had a positive impact. It's not exactly Facebook, but for a portfolio site that doesn't provide the viewer with anything but information about me, I think these numbers are pretty okay! In this post, I am going to go through an in-depth look at what has worked for me, what hasn't, my tips for building…

Continue reading...

My Favorite Free Resources for New Programmers

Last week, I shared my tips for new developers and how to start coding. I also wanted to share my favorite free resources for learning how to code. I have used or gone through each of these personally, so I can vouch for them being good quality and beginner friendly! For HTML and CSS A game for learning CSS selectors: CSS Diner A game for learning CSS Flexbox: Flexbox Froggy A game for learning CSS Grid: CSS Grid Garden A video I made for learning CSS from zero: Learning CSS Through Creating Art An awesome CSS Grid series by Jen Simmons: Layout Land For JavaScript A video series introducing JavaScript: Khan Academy Computer Programming An awesome more advanced written introduction to JavaScript: A re-introduction to JavaScript 30 days of JavaScript challenges with corresponding…

Continue reading...

Friday Wrap Up: August 10th Edition

Happy Friday! I've had this week off (and next week!), so I'm writing this from New York City where I'm vacationing. It's been nice to not be working all the time, and it will be even more awesome to move back to DC next week. I do, however, want to thank all of the awesome people who were really encouraging to me this week! I had my first negative blogging experience this week -- my tips for new developers got posted on Reddit, and, though it was really awesome to see my post perform well, some of the comments were really nasty. That being said, I've also had a really positive and encouraging response on Twitter and on dev.to which made me feel a lot better! Shout Outs Dev.to - speaking of dev.to, they open sourced this week! I know its been a lot of work and time coming, so I'm…

Continue reading...

My Terminal Setup: iTerm + Zsh

As a follow up to my post on my text editor setup, I wanted to write about the other key part of my development setup -- my terminal. Unlike my relatively new text editor setup, my terminal configuration has followed me around for years -- spanning over multiple jobs and even more computers. It's the first thing I get set up on when I get a new computer The Terminal I use iTerm2 for my Terminal emulator. It has some really cool features, like search, autocomplete, and paste history. That being said, the feature that makes it a complete must have for me is the split panes. When I do web development work, I usually have panes open for my server session and for running other commands as necessary. When running many processes at a time, as was required at my old job, I would easily have 1…

Continue reading...

Friday Wrap Up: July 27th Edition

This week was pretty crazy, I'm wrapping up a summer in Hartford Connecticut and I am gearing up for a couple weeks of much needed vacation! I'm still having a lot of fun writing here as much as I can; my speaking post took a lot more time than a lot of posts. That being said, I wrote two posts this week instead of a new one each day, but those posts were pretty in depth so I spent a similar amount of time writing! I have another exciting project launching this week, I will be co-hosting a Twitter chat on art, design, and code with Dominic Duffin . The first one will be a "Hello, world" chat this Sunday at 1 PM EST. Follow the account or the #ArtTechChat to join in! Shout Outs Python has brought computer programming to a vast new audience - Python was my first programming language…

Continue reading...

Public Speaking as a Developer

As a follow up to my post from March on blogging as a developer , I wanted to give my tips for doing public speaking events as a developer. A little over a year ago, I submitted my first call for papers (aka conference application) to the Code(Her) conference in DC where I live. It was accepted, and I gave my first conference talk last August. Around the same time, I moved from a traditional software engineering job to teaching at General Assembly's bootcamp. From that point on, I've given over 20 talks at conferences and meetups over the past year. All that being said, I wanted to give my tips -- from the application process through giving the actual talk. Why Speak? These reasons are going to look really similar to my reasons for blogging! Reinforce your knowledge on topics. The best…

Continue reading...

Extreme Makeover: Code Edition

I am a little bit obsessed with writing clean code. Code should be written for future developers (including yourself) and extendability -- it should be relatively easy to add features to your application and to maintain your code. If we were writing code for computers, we would just write binary! Here are some of my tips for writing cleaner code: 1. Use clear variable and function names Code becomes much easier to read if you write out full, descriptive variable and function names. The below code isn't very clear: It becomes a lot more readable if we write out full variable names! Don't minify your own code, use full variable names that the next developer can understand. 2. Write short functions that only do one thing Functions are more understandable, readable, and maintainable if they do…

Continue reading...

Friday Wrap Up: July 19th Edition

Week one of the Zen of Programming in the books! I am super excited to be working on this project and to get to write about things that are a little bit more personal to me. I will probably eventually no longer be able to write every day, but for now, that posting schedule is working so I will stick with it! On Fridays, I am going to write a wrap-up with some of my favorite links from the week and any updates! Things to Read How exactly does binary code work? - An amazing explanation of what binary is and how computers use it. I am excited to watch the whole series! Amazingly Paired Google Fonts - I get so much inspiration from the font pairings on this site -- so creative, and they all look great even if I don't love the font. AI, Ain't I A Woman? - This video is incredibly well done…

Continue reading...

My Goals for My 24th Year

I turned 24 this weekend, and , as with any birthday outside of childhood, I have conflicting feelings. On one hand, being a little bit older gives me more legitimacy in my field -- I normally hide my age professionally in fear that I won't be taken seriously or that people won't believe my experience level. I've been really lucky to have a good career at my age, and I worry that if people actually knew how old I am that the same opportunities wouldn't have presented themselves. On the other hand, I feel closer to "true adulthood" (whatever that means) and closer to no longer being young. I have a lot of goals for my 25th year, that I want to push off until my "true mid-twenties" for various reasons, but I wanted to also set some goals for this year, before I get to that point. Say "no" to…

Continue reading...

What is a Web Framework, and Why Should I use one?

"Framework" is a word used a lot in relation to code. So, what even is a framework? When we talk about frameworks, those frameworks normally fall into three different categories -- frontend, backend, and CSS or user interface frameworks. But even once you know what frameworks are, which one should you learn or use and why? This post will discuss what a framework is, what frameworks are out there, and how to make decisions about what kind of framework you should use for your projects! What are Frameworks If we look at a couple different web applications we can see that there are a lot of duplicated features. Many have user authentication, pages that render, they connect to databases, they have profiles you can look at, they all have stylized feeds of information etc. If I wanted to, I could…

Continue reading...

My Visual Studio Code Setup

I love the text editor setup I've been using for the past year and a half, so I want to show off my setup! Visual Studio Code has far surpassed my experiences with Atom, Spyder, Sublime Text, Emacs, and Idle (the built-in Python editor) which I used for the years before it. I thought I would do a quick write up on my setup and the extensions I love! Theme Since I teach people how to code professionally and give a lot of talks on programming, having a readable theme is super important to me. I also love to have a theme that I enjoy aesthetically, so usually something with a lot of girly colors. Those criteria being set, my two absolute favorite themes are Fairy Floss and Dracula . Fairy Floss Dracula Font I am a long-term FiraCode loyalist (pre-dating VS Code!); I like the ligatures…

Continue reading...

Hello, World

So I'm going in a different direction with my blog posts, or at least a little bit. As you may know if you follow me online, I am not who most people think of if they imagine a typical developer -- I am a young women whose interests are pretty far outside most people I know in the field. I love fashion, beauty, awful trashy tv shows like The Bachelor and Vanderpump Rules , I work out a lot, and my developer setup is all pink and purple. On the other hand, I've never seen Game of Thrones , Lord of the Rings , Star Wars and don't really relate to a lot of the culture that comes with tech. All that to say -- I want to build a blog that would appeal to me, and especially to pre-software engineer me. I want to show that people like me do exist in this industry and show a snapshot into my…

Continue reading...

Ali Spittel

Hi! Welcome to the Zen of Programming where I talk about programming and my life surrounding it!