How I Was Homeschooled

You may already know that, from a pretty early age, I’ve been homeschooled along with my siblings. You may not know, however, what exactly I mean when I say that. And honestly, it’s pretty difficult to get solid information on how homeschooling works, primarily because “homeschooling” is really a big bucket full of many philosophies, reasons, and families.

Most people homeschool because they want or need to school their children differently than how the public school system does it. There are a number of ways this could present itself: there are highly educated professionals who believe they are more capable than a public school teacher to teach their children; there are parents whose children have severe autism or other developmental disabilities who believe they will be able to help their own children individually better a public school teacher who has to corral fifty kids each day; and many more.

Among these, the most common method of organizing the homeschooling process between parents is to have one parent working, and the other staying home to homeschool the kids. This seems like the sane route: after all, kids take up a lot of time and require a lot of attention. If the breadwinner has an office job, they’re not going to be home often enough to help the kids; if they work from home, the kids will be bothering them with questions so often that they can’t focus on working. And for most families, this probably is the sane route. But my mother, Stanford graduate, who flew a plane and worked for NASA, would not take “sane” for an answer, and did the bloody thing anyway.

Throughout her childrens’ entire homeschooling lives, my mother has been working around 50 hours a week, in addition to running three small businesses. And this has created a very strange kind of homeschooling, with some very strange and specific benefits and drawbacks.

The obvious drawback is that she’s had a lot less time to spend on homeschooling her children. And at first, when we were just quitting traditional school, and when we were just getting used to the concept of working from home, it was difficult. But rather quickly, it developed into a bunch of neat advantages.

Firstly, since she’s been actively working a career, she factored a ton of career preparation into our homeschooling. Where a lot of homeschool parents are myopically focused on getting their kids prepared for college, my mother was also preparing her children to work. With that in combination with our work for her businesses, we got a very well-rounded and immersive understanding of careers and business.

Second, since parts of several of her jobs have involved hiring entry-level employees, she knows what colleges tend to prepare people for, and she knows what they don’t. And with that knowledge, she could systematically teach us the things that we would need to know for our future careers, that we probably wouldn’t learn otherwise. One such lesson that I learned very, very early on was the importance of a positive attitude. If you’re willing to learn and you’re cheerful, everyone will be happy with you, even if you aren’t very good at your job. But on the other hand, if you’re an asshole, you have to be leaps and bounds better than everyone else – I’m talking twice as good as everyone else in the office, combined – for people to tolerate you enough to keep you. You don’t learn that in high school or in college: if you show up and you learn the material and you get good grades, literally nobody cares how pleasant you were to be around while you did it.

It wasn’t just the career itself. It was also the apparent drawback of her lack of available time that also turned out to be helpful.

My mother was never available at the drop of a dime. I had to wait for her to be done working, and I frequently had to plan out when I needed to talk to her about something. I got used to sending her emails asking for help with things. Now that I’m in the Praxis program, and I have mentors that I can contact, I’m seeing a lot of the same thing that I got used to growing up. You can’t take for granted unlimited time from a mentor. They’ve got a real-life job, and though they’re happy to help, their time is a limited resource. So it was with my mother growing up.

If you think about it, this is the polar opposite of the public school system model, where the teacher’s job is to teach, and nothing else. People don’t value what is abundantly available, and you can tell that school kids don’t value the time of their teachers. But you can be that employees value the time of their mentors, because they know that their mentors have important jobs that have nothing to do with them. And so we valued my mother’s time, like we would value a mentor’s.

Furthermore, sometimes we just couldn’t reach her. Sometimes she was just unavailable (she was at the office, on a business trip, or her clients were having serious issues). And so, sometimes we just had to find an answer from somewhere else. This was another way in which our education was very different from the traditional school system: a school teacher is supposed to have all the answers to all the student’s questions. A student’s first, last, and usually only resource is their teacher. On the other hand, my mother’s semi-frequent absences meant that to answer our questions, we had to do research on our own, or reach out to each other.

The relationship I had with my mother, and the relatively unique type of homeschooling that we all had growing up, was useful in a number of ways for shaping all of us. I’m just glad she was crazy enough to do it.

Why to Use CSS Instead of JavaScript for Your Menus

Before I start on this post, if you haven’t read Good Tech Things to Know, I recommend you read that one first. I’ll be referencing what I wrote in that post for purposes of explaining the tech in this one. If you already have a basic understanding of what both JavaScript and CSS are and what they do, you’re welcome to hang out here, but the link’s still there if you need it.

That said, let’s dive into a lesson I learned very recently: why to use CSS instead of JavaScript for menus.

To start off, let’s explain what I mean by “menus”. A menu is just a place that a user can go to choose from different options; just like in a restaurant. In the context of websites and applications, menus can be used for navigation, selection, input, and more. There are a number of types of menus, but one of the most common, especially for navigation on websites, is a drop-down. Here’s an example. You can hover your mouse over the square labeled “Two” and get four additional options. Here’s another example. You can click on any of the squares with arrows and access additional options. This example is a bit more complicated, since hovering over some of the options shows yet more. Still, both are the same style of navigational menu.

The first example menu is created with CSS. The second is created with JavaScript.

It’s pretty easy to understand how you could create a menu like that with JavaScript. After all, JavaScript is a programming language, and programming languages can make decisions and do things. The decision for a drop-down menu goes something like, “if the user hovers over the square labeled ‘Two’, then display the drop-down; if the user stops hovering over any part of the menu, then stop displaying the drop-down.”

But if you recall, CSS is a markup language. It doesn’t make decisions and it doesn’t do stuff, it just styles HTML. So how exactly is it possible to make those decisions using CSS, and why am I saying it’s preferable to do so?

To answer the first question, I’m going to delve a bit more into how CSS works. Don’t worry; I’ll make it easy.

The basic structure of CSS is a bunch of commands that look like this:
property: value;
For example, take the statement “color: blue”. Color is a property which tells the computer what color a piece of text should be. It has a huge range of possible values. Blue is the specific value of the color property that we want to use in this circumstance.

A lot of the time, CSS properties don’t have such obvious names. For example, what do you think “margin: auto” does? It’s not obvious by reading the property name, so the programmer needs to know by rote. (Which this programmer does. “margin: auto” centers something.) So, the process of coding CSS is essentially translating between what you want the computer to do, and what properties you should set to what values to make that happen.

For purposes of creating drop-down menus with CSS, the single most important property is “display”, and the most important value of that property is “none”. Basically, “display: none” removes something entirely from the page. It’s like a CSS backspace key.

This “backspace key” is really useful for doing things like removing a drop-down menu from the screen when the user stops hovering over it.

So if that’s the “then” part of the statement “if the user stops hovering over any part of the menu, then stop displaying the drop-down”, how do we code the “if” part? How can we tell whether or not the user is hovering over the menu?

Fortunately for us, the part of the computer that figures out whether or not the user is hovering over the menu is not programmed in either JavaScript or CSS. It’s built into the web browser itself. So, both languages have the capability to figure that out. In JavaScript, it goes
if (!event.target.matches('.nav'))
In CSS, it goes
.nav a:not(:first-of-type) { display: none; }
Don’t worry about not understanding those code snippets, I just wanted to show them to you to demonstrate how different the same basic code looks in different languages.

So, we’ve got both pieces. We’ve got the decision, and we’ve got the action. And so, we can program drop-down menus with CSS, even though it’s not technically a programming language. Pretty cool, eh?

Now, I did previously say that not only is programming menus with CSS possible, it’s actually preferable. There’s one simple reason for this: ubiquity.

An unfortunate fact of life for web designers is that not everyone is going to be seeing your website in the same way. Their screen size could be bigger or smaller, or have different proportions. Their browser could be different from the one you use, or it could even be text-only. They may have some extensions enabled that you’ve never heard of, and they may not have extensions enabled that you use daily. And every one of these differences affects how that user will view your website. If your website isn’t usable to everyone on every device with every setting, you’ll drive away a ton of potential customers.

I bring this up because JavaScript is actually one of those potential differences between you and your users. There are a lot of people who don’t have JavaScript enabled. If you program your website’s navigation using JavaScript, your website will be completely unusable to someone who doesn’t have it enabled.

Nobody wants to disable CSS, however: while JavaScript is frequently used to make pop-ups and ads visible, and otherwise isn’t used for integral functions; disabling CSS would not prevent ads from being displayed and is one of the most integral parts of a webpage.

So, CSS is ubiquitous whereas JavaScript is not, and a crucial piece of your website should not be created with a non-ubiquitous language. That is the reason that I recently deleted all the JavaScript code I had for my website navigation and decided to start over with CSS. And that is the reason that you should program your menus with CSS instead of JavaScript.

Portfolio Project: Week 4

Hey all! So for the very last update of my portfolio project month, I’ll be doing something a little different. I wanted to elaborate more on exactly what it is I’ve been doing, and I also I wanted to talk about the lessons I’ve learned overall. For all of these reasons, this is going to be a little bit of a longer post than my other updates.

What I got done

I passed my MTA JavaScript and added it to my website. This is the last MTA I wanted to get this month: I’ve now got them for almost all my major marketable skills: HTML/CSS, JavaScript, and Java. The reason I wanted to get these certifications is that they are externally recognized demonstrations of my skill. They communicate to potential employers that not only do I say I know how to program in Java, a third party recognized me for that knowledge.

I coded three brand-new pages on skills—SQL, Java, and HTML/CSS—thus completing my goal for this project. Honestly, once I stopped trying to make my skills more impressive and just decided to put them out there, it felt nice. And beyond just feeling nice, having these pages on my site gives more detail to potential employers about what I’ve done and how. My next step here is probably to ask some friends and family to read my content and give me feedback so I can add detail, improve explanations, and consolidate information. A website is really never finished, so though this project is properly done, I’m going to continue improving the pages I’ve created as well as adding new ones.

I continued to work on the drop-down menu, but I pushed it onto the back burner so I could complete my stated project goal. Actually, I talked to a fellow developer early in the week and ended up completely scrapping my previous code and starting over. The reason for this is that my previous code was in JavaScript, and there are a lot of people who don’t have JavaScript enabled. A crucial piece of my website should not rely on something that not everyone has enabled. As such, I will be programming my drop-downs in CSS from here on out. (Later, I’ll make a post talking about this decision in more detail. For now, here’s a post explaining what both of those things are and what they do.) Overall, while having this drop-down will be nice, I’ve linked all my content on my main Skills page, so it’s not at all necessary.

Also on my back-burner, I began creating a simple website for a local organization that my family has volunteered with for many years (called Schenley Park Learn to Skate). The main goal of this website is to allow people to sign up for the learn-to-skate program online, thus cutting down substantially on physical paper-pushing. Because of this objective, the project will be a good opportunity to learn how to integrate a SQL database with PHP – or in layman’s terms, to figure out how to gather information from many customers and store it all in one place.

Over the course of this month, I’ve passed three MTA exams, programmed four webpages, and made a number of miscellaneous fixes and improvements to my personal website, including improving mobile usability.

What I learned

Throughout this project, and especially in the last two weeks, I learned how easy it can be to fall prey to “scope creep”, or the natural way that humans accidentally allow themselves to work on a part of a project beyond its initially stated scope. For example, instead of learning skills and programming pages, I allowed myself to spend a lot of time on trying to code complicated features. It’s human nature to be distracted by shiny objects, but it’s human necessity to avoid that tendency, especially in the context of projects on deadlines.

I also learned the importance of work-arounds. If you’ve got a crucial piece of a project that’s not working, the appropriate response is not to put the entire project on hold to fix it; the appropriate response is to find a suitable work-around (there is nearly always a work-around, though it may be less efficient or elegant), continue with the main goal, and work on the piece you originally intended in the background.

Lastly, I learned more solidly than I ever did in school how much I know and how much I don’t. The school system (both high school and college) is based on levels and labels, but the real world is based on tasks. Someone who’s in school says “I’ve taken five classes in web development”. Someone who’s working in the real world says “I can program a responsively-designed website which conforms to XHTML specifications and which utilizes JavaScript, PHP, and SQL”. Within the span of a few months, I’ve transformed from the first person into the second.

I think this is a very good thing. It’s all well and good to say “I took a class in X”, but if your audience doesn’t know a lot about the specifics of the class and what it taught, they can’t translate that statement into what you can do. And for employers, who are looking at your website with a question (implicit or explicit) of “can this person do X thing I need”, a list of concrete skills is infinitely more useful than names of courses.

workflow for the week and the month

For this week, I honestly spent the vast majority of the time I didn’t spend working for money on writing content and coding. I really had no free time between those two things. It was kind of a throwback to my yearly cramming that I used to do every April in high school: every AP test, otherwise known as literally the only test that matters when taking an AP class, happens in May, so April is cram time for literally all of those classes. This past week was like that.

Still, this week there were no major setbacks, and I mostly got the opportunity to just focus on what I needed to do and Get Shit Done.

If I look back over the entire month on a day-by-day basis, it was sporadic due to a variety of internal and external factors. But I’ve noticed that all humans seem to be like this. Look at a human on a daily basis, they’re all over the place. One day is spent working incessantly and the next is spent getting almost nothing productive done at all. Or maybe one week is productive, but the next week is in shambles. The thing is, to understand any human you need to zoom out and look at trends. Look on a monthly or yearly basis instead of a daily one, and that will tell you how you’re doing.

Was I more productive today than yesterday? No. But it also doesn’t matter. The question should be, was I more productive today than last year? And the answer to that question is, yes, by leaps and bounds. Because on the whole, I’m trending upward. I’m allowed to have bad days. I’m even allowed to fall deathly ill and basically cease to exist on Earth for a week. The goal isn’t to be perfect every day, the goal is to look at where you are right now and compare it to where you were a year ago and see substantial improvement.

Did I meet my project goals?

Simple answer, yes. When I started this project, I had a very specific and achievable goal, and despite the setbacks of being sick and getting distracted, I achieved it. For four different skills,  I improved at a certain skill, and I also wrote content about that skill and added information about the skill to my website.

I decided on this goal in the first place because I knew I needed more content out there for employers to look at. Without a lot of job history in my chosen field, projects and certifications are all I’ve got to go on, so my main goal this month was really to get more of those.

And furthermore, viewing this in the context of the Praxis program I’m a part of now, every section (or “module”) is designed as an intensive exercise in one very specific thing. In the spirit of this, I chose my goal as an intensive exercise in one very specific thing: demonstrating my skills. I knew it needed to get done, so I took this month, I set specific goals, and I got it done.

What am I doing next?

The next month of the Praxis program is a 30-day blogging challenge, in which I write a blog post on some topic every single day. Honestly, I’m excited. I love to write, but I haven’t had as much time as I would like to do it. Being able to add more content to this page and discuss interesting topics on this blog is going to be amazing.

See you then!

Good Tech Things to Know: An Incomplete List

In today’s technology-saturated world, it’s very helpful to know some stuff about tech even if you’re not yourself a technologist. However, I’m very aware that good explanations of tech for non-tech people are few and far between. So, in this post, I’ll give some simple explanations of some of the most common tech things you might want to know.

The Structure of the internet

If you’re reading this, I’m going to presume you use the internet, and I’m also going to presume you know that it’s primarily composed of web pages. You probably don’t know, however, how exactly those pages are constructed.

Fortunately for you, it’s surprisingly simple. There are three main components to a web page: HTML, CSS, and a big bucket of other Miscellaneous Things. HTML and CSS are what are called “markup languages”. They create the structure and style of a page, but for the most part they don’t do anything. Miscellaneous Things, which include SQL and JavaScript, are “programming languages”: they actually do stuff, like perform actions and make decisions.

Think of markup languages like a static piece of text, and think of programming languages like a button.

Now let’s add some more detail about all of those components, starting with HTML. HTML stands for HyperText Markup Language. (The markup language bit you already understand, and I’ll get to the hypertext bit in a moment.) Essentially, HTML creates the framework for a webpage, by itself, with no stylization (color, layout, etc). Now, when you think of “framework”, it can be tempting to think of a wireframe: a website wireframe

But this isn’t what I mean. See, though there are no images or color, there is still style, because there is still layout. There are distinct sections. The spots to put images are different sizes. Text is organized in columns. HTML, by itself, contains none of these. HTML, by itself, looks like this.

ultra-basic pure html page

Kinda boring, eh?

Text is organized in a single column. It may be bigger and bold if it’s a heading, but that’s the browser’s default style; technically, HTML doesn’t do that, your browser does. If you display pure HTML, you get a single left-justified column of black text with images and links on a white background. (The presence of links, by the way, is the definition of hypertext. Remember I said I’d get to that? It really is that simple: “link” stands for “hyperlink” which is another word for hypertext.) Overall, it’s really uninteresting to look at.

This is where CSS comes in. CSS stands for Cascading Style Sheets, and it’s that middle word we care about: Style. Essentially, CSS creates the colors, fonts, layouts, and almost everything in a website that you care about. The fact that the text you are reading now exists at all is because of HTML, but the fact that the text uses the font Merriweather is because of CSS.

All HTML is supposed to do is tell the computer what stuff is: what part of the webpage is a heading, or body text, or an image, etc. CSS is the thing that makes all of that visually interesting: for example, it tells the computer that the headings should be blue, the body text should use a serif font, and the images should be on the right-hand side.

CSS is actually the reason that wireframes exist. You don’t program a wireframe, you draw it, and the reason is that wireframes don’t exist for the benefit of computers. Wireframes are planning tools that exist for the benefit of humans. Computers already have something to tell them how a webpage should be structured without CSS: it’s called HTML. But a human needs a picture to know that, because humans think in pictures, not code.

You now understand a good third or so of how the internet works. HTML creates the website structure by telling the computer what stuff is. CSS styles that structure into something aesthetically pleasing to humans. Before we move on, let’s dip our toes into the Miscellaneous Things bucket, otherwise known as programming languages.

You already know the most important thing about programming languages: they do stuff. And essentially, they do two things: they perform actions, and they make decisions. (Frequently they do both.) An example of an action is changing the color of an icon. An example of a decision is figuring out which browser the user is viewing the page on. An example of doing both is changing the color of an icon depending on the user’s browser.

The above examples can be done with JavaScript, which is probably the most popular programming language used on the web. JavaScript is also frequently used in the creation of navigation menus, login forms, and various site-enhancing animations.

As a side note, it’s important to make the distinction between the actual, visible piece of the webpage—the buttons, links, input fields, etc.—which are created using HTML and CSS like any other visible website piece, and the decisions and actions that are attached to those visible website pieces—the action to be taken when the button is clicked, when the link is hovered over, when the input field is typed into, etc.—which are created using JavaScript. These are separate components of the webpage.

Here’s another, slightly more complicated programming language that’s frequently attached to websites: SQL (pronounced “sequel”). SQL stands for Structured Query Language, and yet again, the middle word is important: Query. Essentially, a query is a request for information. Here’s an example. When you log in to a website, you type your login information into the input fields and hit the submit button. When you do that, the server (the electronic place where your data is stored) is asked by the webpage for the login data. The answer to that question is fetched by SQL.

Fetched from where? Well, on the server, the place where the data is stored is called a database. The database is built, managed, and queried with SQL. When a new user creates an account, their login information is stored in the database, and whenever they log in again, the information they typed into the input fields is checked against the data stored in the database. All of this happens with SQL.

Everything we’ve talked about on the web so far—HTML, CSS, Javascript—happens “client side”, aka, on the user’s browser. SQL, by contrast, happens “server side”, aka, on the server where the website data is located. Client side processing happens where it does because the experience is different for each user, depending on the size of their browser window, what type of browser they’re using, etc. Server side processing happens where it does because the data is collected from a huge number of different users, so it makes the most sense for the resulting gigantic amount of data to be stored in one centralized location.

Here is the major takeaway: Computers think dramatically differently than humans. HTML is the basic structure of a webpage from a computer’s point of view. A wireframe is the basic structure of a webpage from a human’s point of view. People who program computers need a foot in both doors: obviously, they think like humans, but they also need to understand how to think like a computer. Computers don’t speak English, computers speak code, and if you want a computer to do what you want, you had better be able to talk to it in its native tongue.

Search Engine Optimization

Now that you generally know how the web is structured, let’s talk about a surprisingly little-understood but incredibly crucial aspect: search engine optimization, or SEO.

If you’re reading this, I’m going to presume you know what a search engine is. What you probably don’t know, though, is how exactly search engines decide what results go first. When you search for something on Google, you see results in a certain order, but what algorithm generates that order?

The answer is constantly changing for two reasons. First, as soon as companies figure out what the criteria are for higher search result placement, they capitalize on it like crazy, because higher search result placement leads to more customers. (The process of doing this is SEO.) Second, it’s in Google’s best interests for its algorithm to promote the kinds of search results that people actually want to see. If Google’s customers’ criteria for what makes a good search result is different from the kinds of results Google’s algorithm actually generates, the results are skewed in a direction that isn’t beneficial to the customers, and they get mad.

So ideally, if Google makes a good algorithm, the companies will actively try to make their websites better in order to get higher search result placement.

As a side note before I get into the rest of this, one thing a lot of non-techie people don’t realize is that when they search something, there are some results—typically the top ones—that are paid ads. People have paid a certain amount of money to have their product/service shown whenever that keyword is searched. Frequently these are labeled “AD”, but frequently this label is inconspicuous or otherwise difficult to see. In this section, I’m talking about “organic” or “free” top results, not results that are at the top because somebody paid for them to be there.

I don’t know the whole of the algorithm Google uses, since it’s obviously a closely-guarded secret, but here are some of the well-known portions of it that are commonly used by companies for SEO.

  • Improving page load time. Visitors to a site really hate having to wait a long time for a page to load, so search engines put websites that load quickly higher in their rankings.
  • Having other websites linking to yours. This was a much bigger thing ten years ago, but it’s still a part of the algorithm. Essentially, if a good number of other websites link to yours, then the people posting on those other sites probably think your content/product is good, so search engines put your website a little higher. The reason this is a smaller component of the search engine algorithm is it’s really easy to cheat. Back when this was a larger portion of the algorithm, companies would create a ton of small sites that linked liberally to their main site.
  • Visitors click on your page, stay on your page longer, and/or visit other pages on your site. If you can get, and more importantly keep, your visitors, your page is probably giving them what they want. The ranking in search engines for these things is as follows:
    1. The user clicks on the page, spends a decent amount of time there, and proceeds to navigate around on the rest of the site.
    2. The user clicks the page and spends a decent amount of time there.
    3. The user doesn’t click the page.
    4. The user clicks the page, but clicks away almost immediately.

That last one might seem strange. Shouldn’t those last two be in the opposite order? No, and here’s why. If the user doesn’t click the page at all, they may think “no, that’s not what I want”, or they may have just not noticed it. By contrast, if the user clicks the page and then immediately clicks back, the search engine can be reasonably sure that the user thought “no, that’s not what I want”. The difference is between a pretty certain “no”, and a merely possible “no”, hence the ranking.

  • The page uses words/phrases contained in the user’s search. In the 00s, this actually used to be almost the only method of SEO. The reason this changed was that, like my second point above, it is very easy to cheat. Companies would create a ton of webpages on their site that came very close to spamming a particular keyword, while still looking enough like a genuine article to fool a search engine. (Some of the first paid work I ever did was working freelance writing articles like these; I remember writing 500-word articles on black mesh, swimming goggles, and other miscellaneous junk.) However, due to its importance in determining a good search result given how search engines fundamentally work, this remains a pretty large portion of modern SEO. They’ve gotten around companies doing the 00s-SEO by making “stuffing”, or the overuse of keywords, a penalized practice.
  • Search engines can move easily through the pages to find what they need. This one is kind of blatant self-interest on behalf of the search engines, but it still makes a lot of sense. Search engines have a ridiculous amount of internet to “crawl” through (that is the technical term, I’m not kidding), and they want to show their users their search results as quickly as technologically possible, so they prioritize pages that are easy for search engines to find information in.
  • The site works well on mobile. Nowadays, a lot of people view webpages on their mobile phones, not just on desktop. However, mobile-enabling a website is hard (trust me, I know). So, to incentivize developers to do it, search engines give heavy penalties to sites that don’t have good and usable mobile versions.

These are just some of the most crucial and important ones off the top of my head, but there are a huge number of other factors. For further reading, see this insightful SEO Periodic Table.


That’s all for right now! I will probably update this list whenever I find another tech thing that somebody doesn’t understand. If there’s a tech thing that you’ve been hearing about but don’t get, absolutely post it in the comments: I’d love to hear from you and update this post accordingly.

Portfolio Project: Week 3

Hey all, I’m back! So it turns out the Mega Cold I had was actually pneumonia. Yeah. I was diagnosed and promptly put on a full course of antibiotics, plus some additional palliative pills for the general misery. I’m feeling a lot better now! And as such, I got a lot more done this week.

  • Worked on adding my project to my JavaScript page
  • Dramatically improved the readability and usability of my mobile site (enlarged buttons and lists, changed font sizes, etc.)
  • Worked on creating drop-down menus
  • Also generally got my life together overall: got back to working out, job hunting, working, learning more coding skills, etc.

Here’s a breakdown of what I did and when:

  • At the beginning of this week, I went to the doctor’s and got prescribed antibiotics. For the first few days my main goals were things like “walk around” and “take a shower”. Super simple being-a-human stuff.
  • As I got better, I could work on coding in bits and pieces. I did research for my dropdown menus and looked at how other people had done it. As soon as I was well enough to code, I worked on improving the usability of my mobile site, since it was really just a bunch of fiddling with CSS.
  • Through yesterday, I did a lot more: I worked extensively on adding my project to my JavaScript page and I wrote a ton of code for my dropdown menus. However, I felt a bit overwhelmed, and I definitely felt like I was fighting an uphill battle. That was around the time I realized something, which brings me to my next point.

Here’s what I learned this week.

When I started this project, my stated goal was to create four pages to showcase my skills. Somewhere in the process, I realized that I had gotten sidetracked into trying to improve my skills, so I could showcase what I wish my skills were, not what they actually are. The problem was, I thought I was showcasing my skills, but I just kept thinking “oh, I could make this little thing better, it won’t take long”. I started working on the thing, and a few hours passed. I had part of the thing, but not this other part. I figured out how to make that other part, but then it wouldn’t work the way I wanted and I had to debug it. Before I knew it, a week had passed.

It was like I had started walking toward a huge mountain early in the day. Because it was so big I figured it was pretty close, and I could get there by that evening, no biggie. But by that evening, the mountain was still huge, and still very far away, and I began to realize that what I had thought would take a day could take a month.

So the biggest thing that I’ve learned this week is that I’ve gotten off track with my goals for this project.

Here’s how I’m going to fix that next week.

  • Rather than trying to learn more in order to make my projects better, I’ll focus on trying to showcase what I do know. I can always work on making my projects better in the future, but that wasn’t the goal for this month.
  • I’ll collate information and create my last three pages. If I can’t embed the actual code for a project (which I frequently can’t, because it frequently involves learning an entirely separate programming language/concept; looking at you AJAX), I’ll just create a video of it running and embed that, or I’ll take screenshots and embed those.

I’m very determined to finish this project and to achieve the goals I set out at the beginning, so I’ll do whatever it takes next week to make that happen.

Portfolio Project: Week 2

Hey guys, so this week is exceedingly anticlimactic in terms of progress. On Tuesday, I was struck with The Cold To End All Colds, and I’ve been nearly bedridden since then.

Here’s what I got done anyways:

  • Worked on improving my site’s mobile readability/usability
  • Learned about AJAX
  • Learned about creating nested drop-downs such as these

Here’s what I’ve learned so far:

  • AJAX is a combination of JavaScript and XHTML (a flavor of HTML, the language of webpage structure). It allows the page to be interactive without reloading.
  • As you try to create more and more powerful code, there are less and less examples readily available. There are a million “learn to make a website” guides that will teach you how to use <h1>, <a>, <img>, and almost nothing else. Learning how to make a real, simple site with a repeating image background, that is responsively designed, that uses complicated CSS and JavaScript (like I’ve done so far), is much harder. I learned recently that I need to keep working hard if I want to create the kind of website I want.
  • When you’re sick, the most important thing to do is not to worry. Focus on getting better, and doing anything you can to remedy what you’ve got. If you let yourself feel like a failure, that doesn’t make you any more productive, it just makes you less effective at combatting your illness.

And here’s what’s going to happen next week:

  • I’ll do everything I was going to do last week
  • I’ll start learning SQL via Udemy and create a page for SQL on my website in addition to the page for Java

Alright, that’s it for this week. Thanks for reading, and I’ll try to feel better so I can have more for you next Friday. Stay tuned!

My Mom is My Boss, My Sister is My Coworker: My Experience in Family Businesses

For longer than I’ve been alive, my mother has owned several businesses. She ran these in addition to her full-time job, and after she had my siblings and I, raising kids. (My mom is an impressive person.)

Even if she’d never involved us at all, the simple fact that she knew a lot about the business world and that she ran three businesses from our home meant that we knew a lot about this from earliest childhood. We knew the value of money, the amount of work involved in running a business, the difference between a small business and a startup. The fact that we were homeschooled for most of our lives also helped: instead of sitting in a classroom and learning through a rigid structure, we had casual conversations, asked questions, and generally just talked about business.

But I didn’t just sit around and learn by proximity: I was actively involved in her businesses as soon as I could do something of value. When I was seven, I had better handwriting than my mom, so I addressed envelopes.  By nine or ten, I was filing and organizing paperwork, too. By thirteen, when I was a good enough artist to be selling commissions at conventions and shows, I was also using Illustrator to create graphics, layouts, and logos. By fifteen, on top of my “real job” at a local restaurant, I had enough coding skill to create a website, so I created speset.com.  (I came up with the name, too; I was taking Latin at the time, and so I took words meaning “Life, and…” in order to convey a meaning of “your life and whatever you choose to do with it”.)

Overall, my relationship with my mother growing up was more of a mentor-mentee relationship than a standard parent-child dynamic. And honestly, I think this is better: the standard parent-child dynamic is full of condescension, mistrust (especially through the section of young adulthood we’ve decided to call “teen age”), misunderstanding, hostility, and a number of other things. My relationship with my mother meant I was treated throughout my life, not like a child to be talked down to, but like another adult, albeit an incredibly inexperienced one. I’ve noticed that people become what you believe they will be – in essence, humans are self-fulfilling prophecies – so when you expect that a teenager will be rebellious, they will be; and in the same way, when I was expected to be an adult, I was.

I think some people may accuse my mother of “not giving me a childhood”, but they misunderstand the amount of time these things took, and also how much I enjoyed doing all of them. When I was addressing envelopes, it took maybe two hours a week at absolute most, and I loved being able to do something that was genuinely useful to someone. Little kids are often insecure because they don’t really have anything they’re very good at yet and so they don’t have any way to differentiate themselves, but I skipped that bit, because I was doing real, valuable work.

Designing the Speset website was similar. I really wasn’t very experienced as a programmer at that point, though I did have some non-negligible graphic design experience. For the purpose of building an entire website from scratch, I was out of my depth in a lot of ways. But I just dove right in, spent a few weeks on it, and came out the other end with a website. Speset went from nonexistence to existence as it became a home for a set of books that were previously just floating about in the Amazon aether. And it made a real difference in the books’ audience: at the time of this writing, the mailing list which I integrated into the Speset site has over a hundred subscribers, with absolutely no additional marketing.

Don’t usually get that kind of value from a fifteen-year-old, eh?

My siblings took a similar path that I did. Essentially, they were my coworkers. And just like I was specialized based on what I enjoyed and was good at, so were they. My sister Anastasia has always had a penchant for finances and accounting, and so she’s been a kind of junior accountant for most of her life, doing bank reconciliations, analyzing balance sheets, and creating general ledger accounts. As I did, she took on more responsibilities as she developed more skills and experience. And as I did, she had a ton of fun with it all. I can’t speak to the exact kind of work she’s doing at the moment, because I’m not an accountant, but I know she’s creating value as well because she’s being paid.

At the moment, my mother owns three businesses: Ellis Wyatt, which does roofing, remodeling, and repair; John Galt Properties, which owns a number of rental properties; and CodeX, which is sort of an umbrella company for her consulting plus a few other miscellaneous things that you could either call tiny businesses or side gigs (Speset falls under this umbrella, as well as Navision Depot and several others). I’ve helped in various capacities with all of them: I designed and programmed the websites for both Ellis Wyatt and Speset, and I deliver paperwork for John Galt.

Our family dynamic is different because we work together to get business work done. I ask Ana when she’ll have the tenant statements done, because I want to deliver them on my way to class tomorrow. She replies that she’ll have them done after she finishes her economics homework. Between working together and doing schoolwork, all in the same house, I have an incredibly close relationship with my siblings, as well as with my parents. Our family dynamic is different because we work together, but I think that’s a good different.

Portfolio Project: Week 1

Hey all! So, it’s the end of week 1 of my portfolio project month! Here’s what I got done:

Here’s a breakdown of what I did and when:

  • At the very beginning of the week I passed my MTA Java.
  • I learned JavaScript with this course. It’s pretty good: concise, clear explanations, lots of exercises, both audio and visual resources. I’m using Udemy for both web development and SQL.
  • In the middle of the week, I took and passed my MTA HTML/CSS.
  • Then I coded the JavaScript page, though I didn’t have time to integrate the page with the rest of the site, since I was trying to find the optimal organization for pages.
  • Today, completely by accident, I realized that the mobile version of my website needs some serious reworking, so I put that into next week’s plan (below).
  • And lastly, I wrote this blog post!

Here’s what I’ve learned so far:

  • I did a bunch of research and conducted a few surveys of the optimal way to organize drop-downs on a mobile website, given limited screen space.
  • I learned that to make a website read well on a phone, not only do you need to reorganize layout, you need to make everything obnoxiously big. This is why it’s important to test mobile layouts on a real phone, not just by resizing your browser window.

And here’s what’s gonna happen next week:

  • I’ll create another drop-down menu for the Skills link on the nav bar. On mobile, this will create a nested drop-down (aka, when you hover over the Skills link in the first drop-down, another will pop out on the right-hand side which displays pages for each skill I have). These individual skill pages are where I’ll be documenting my progress through this project.
  • I’ll create another page documenting my knowledge of Java, and I’ll try to learn some AJAX so I can put the actual Java app onto the site. (I don’t know how hard a goal that is, so if it’s too hard for one week, I’ll just put up screenshots for now and keep working on it in the background. But I want to set the goal, just in case I can do it.)
  • I’ll fix the mobile version of my website to make everything bigger and more readable.

That’s it for this week! I’ll have another update next Friday; stay tuned!

My Experiences In Sales

Note before I start: there was a ton I learned from my sales experience. If I had it to do over, I would still have chosen to take the job. Even so, doing a full-time sales job on top of being in school full-time was one of the hardest periods of my life, so I’m going to talk about it as such. Further, there was a reason I quit. As I’ve written before: I’m a big fan of the truth. I like it when people have accurate beliefs about reality. And the reality is, sales is hard, and it’s not for everyone.

I write this in the hopes that you may learn something useful about sales jobs, or at least people who are wildly unsuited for long-term careers in sales doing sales jobs. Or maybe you’ll just find it amusing. Whatever works.


I took this sales job at the beginning of 2018. I worked for an independent sales firm which specialized in doing door-to-door sales for huge companies that didn’t have the time to bother with such a thing themselves.

I decided to take a sales position for a few reasons. Most important of those was that I always knew that I had a major weakness in the area of social skills, and I wanted to improve at it. I figured that the best and most effective way of doing this would be to go somewhere that I was in way over my head. If you’re drowning, you only have two options: die or learn to swim. Knowing that, I walked in the door on my first day.

I’d made it through the interview process, which was as much a test of charisma as it was anything else. My father, for all he had failed dismally to pass it on to me, has always been able to exude massive charisma when necessary. And I knew from the interviews that from a charisma standpoint, I was in an office full of copies of my dad. Every single person could do backflips over the social stage, when I could hardly find the confidence to walk without tripping.

But despite all of this, I was ruthlessly determined. I was going to learn from these people, I was going to absorb this charisma that saturated the air, and I was going to come out of this experience stronger. That was the goal, I thought as I was shown into the main meeting room.

I learned that a conversation with a prospect was broken out into five main sections: the intro or elevator pitch, the questioning, the presentation, the rehash, and the close. On the first day, we learned the intro pitch, which I will probably still be able to recite many years from now. “Hi, how’s it going? So nothing crazy, my name’s Jenya, and I’m dropping by really quickly on behalf of Verizon. [Did I mention our main client was Verizon? Well, it was, but that’s not too important.] We’ve done a ton of updates around here, helped out a bunch of your neighbors, and I’m just here to see how I can help you too.”

We dissected it based on what they called the “four factors of impulse”, which were as follows: Jones Effect, or the impulse to want what others have; Fear of Loss, or the fear of missing out on an opportunity; Sense of Urgency, or the importance of the time of both the salesperson and the prospect; and Indifference, or the necessity for a salesperson to not act like a salesperson (prospects don’t trust salespeople).

I recited that pitch to myself in the car on the way home. I recited it as I was washing my face and getting ready for bed. I recited intermittently through the entire next day, which I had off. And by the day after, I had it solidly memorized.

Evidently, this was impressive and unusual. We practiced our pitches in the office the next day, and the more experienced salespeople were impressed. In the afternoon I got the opportunity to practice it “in the field”. I’d knock on the prospect’s door, introduce myself and also the person who was mentoring me, and after I finished the pitch, I would pass the proverbial baton to them so they could keep talking with the prospect. That first day, we collectively made a sale, and I got to keep half the proceeds.

I was tentatively optimistic, but I refused to let my determination slip. Hearing “no” over and over wasn’t hard when I wasn’t doing much, but when I was controlling the conversation, I imagined it would get harder. Still, the fact that a seasoned professional still got a ton of “no”s gave me some excellent perspective.

The next day, I learned the questions: a complicated decision tree based on what the prospect’s answers were. After “how many TVs do you have” was “do you use DVR”; if they said “no”, you moved on, but if they said “yes”, there were a number of so-called “deeper questions” that we had to ask about it. There was no such thing as a learning curve here: we still had only one day to learn this, but it was fifty times as complex as the pitch.

I took exceedingly prolific notes and stuck the notebook I’d taken them on into a bag. Every piece of paper, every chart and graph and magazine article that I was given, I stuck into that bag. It was my sales bag, and every time I needed anything, I could get it from there. When I got home every day, around 10pm, I would review everything in my bag in detail. For this reason, I never had to be told anything twice.

I deep-dove into this so much partially just because that’s what I do, but also because I knew I had to make up for my lack of natural sociability. Growing up, I had been reprimanded a number of times for using the wrong tone, saying the wrong thing, or otherwise not intuitively knowing what to do in a social situation. I had absolutely no social sense, and so during this job, I asked a number of what they probably thought of as incredibly strange questions. How far away from the door should I stand? Where should I put my hands? How often should I make eye contact? What tone should I use during what segment of the conversation? All these sorts of ridiculously specific questions that they had probably never thought about, since they don’t think about what tone they use, they just use it, and people like them.

But I asked these stupid questions, and I got better. I may not be able to intuit what to do in a social situation, but I can sure as heck analyze it to death and memorize every minute difference. So, just like my pitch, I analyzed the conversations. I analyzed my tone, eye contact, gestures, body language. I analyzed those things for the prospect, too. When I didn’t know something, I didn’t think about how dumb it was to not know it, I just asked. And I took liberal notes. Then in the mornings and evenings and during any other time when I wasn’t doing schoolwork (because remember I was in college too), I reviewed my notes. Use a low tone when stating facts. Avoid crossing your arms. Put one foot one step above the other when on a staircase. Take two steps away from the door after you knock. Use eye contact for emphasis when you’re talking, or any time the prospect is talking.

After a few months, though, I noticed that I was stagnating. My mentors were making sales on their own, but I wasn’t. I had learned everything I could, and I didn’t know what else I could do. I got frustrated. Not the kind of momentary frustration, the kind that spikes up when you spill a drink; this was a long, drawn-out frustration that seeped into my mind over the course of these stagnant weeks, when I was walking six miles up and down peoples’ doorsteps, knocking on a hundred and fifty doors, working a twelve-hour day, and coming home long after it had gotten dark with nothing to show for it all.

To make it worse, around this point, my greatest mentor quit. He had been the greatest help to me overall: he gave detailed explanations of what to do in each specific situation, he knew like a good coach exactly what I was doing wrong and how to fix it, and he communicated clearly. Not only that, he was a delight to have around, and he was consistently one of the people in the office who made the most money.

Even after all of this it was hard for me to get up the nerve to quit. I had known from the get-go that I wasn’t suited for a long-term career in sales, but I didn’t want to be one of those people who just quit when the going got rough. It took a long conversation with my mother about priorities for me to see past this. I went into this with the goal of improving my social skills, and I had succeeded. Yes, it would have been nice to make more sales, but at the end of the day, this wasn’t what I wanted to do professionally. I didn’t need to be frustrated with my lack of success in something I’d only gone into in the first place because I knew I was awful at it. So soon after, I handed in my resignation.

Still, the lessons I learned from this tough period will follow me to this day. Through this process I learned what it’s like to be literally the worst person in a group at something. Growing up, I’d never had that opportunity, since I was always in the top 1% of everything (that is, after all, how you go about getting into Stanford). It was hard to be the worst, but it was also useful: I could learn from literally everyone.

I learned grit and determination. The experience created for me a crazy high benchmark that I can always compare future stressful events against. No matter what I go through, I can think, “this is easier than taking multiple extremely difficult classes, none of which I find fun or satisfying, on top of having a full-time job that I suck abysmally at; as such, I can get through this.”

I learned how to be cheerful no matter what. Growing up a performer, I thought I knew how to be cheerful in the extremes of misery: after all, I went out in -10º weather, in the snow and freezing rain, in a skimpy leotard, moved around a sheet of ice at 30+ mph for five or six minutes at a stretch, and had to make it all look easy. Sales made that look like a walk in the park. I walked around neighborhoods in the snow and freezing rain, not for six minutes, but for six hours. I walked up and down stairs in grueling heat, too; something I never had to do as a figure skater. And when I got to peoples’ doors, I couldn’t grimace in the slightest. Unlike in skating, where the audience sees you from fifty feet away and won’t notice a tiny crease in your brow, your prospect will see you from two feet away. They will notice.

I learned how to take “no” for an answer, and in fact to take it in stride. Just because of how the numbers play out, even the best salesperson in the world won’t be able to get a “yes” from every single prospect. There will be people who, say, work for Comcast and get their internet for free. There will be people who slam the door in your face. And you just have to deal with that, don’t let it shake you, and move right along. Next to their name on your list, write “110” and put a diagonal line between the 1s.

But most importantly, I learned how to sell. I learned the details of how the sales funnel works. I learned how to direct a conversation. I learned the difference between a legitimate “no” and a “no” that comes only from a fear of change. I learned how to make smalltalk (a surprisingly huge part of sales!). I learned to speak and persuade off-the-cuff.

Sales would have been an awful career choice for me, but taking a sales job anyway was one of the most useful experiences of my life.