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!

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

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? It was.] 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 both the salesperson’s time and the prospect’s; and Indifference, or the necessity for a salesperson to not act like a salesperson, since 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 my mentor 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 I imagined that when I was controlling the conversation, it would be harder. Still, the fact that a seasoned professional still got a ton of “no”s gave me some very useful 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 you 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 (our shifts were 10am-8pm, and I had over an hour commute each way), 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.

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, and during the whole time the prospect is talking.

After a few months, though, I noticed that I was stagnating. My peers 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 best numbers.

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 would be awful at it. So soon after, I handed in my resignation.

The lessons I learned from this tough period 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 (I’m one of those weirdos that thrived naturally in the school system). 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, skated 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 many flights of stairs in the 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 also 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.

Dating: A Rational Approach

About four years ago, I decided I wanted to find a life partner. Primarily because I was socially oblivious and didn’t know any different, I took an analytical approach to do this—as we all do with other important areas of our lives. The entire process took me a matter of weeks and I have since been in a committed relationship for four years.

For a long time, primarily because of the fact that my method was so unorthodox and unheard-of, I largely imagined that the normal way of doing things was the best method, and I was a lucky fluke. But a number of recent conversations and some reading has led me to consider that maybe I’m one of the only people who does this right.

Before I dive into this, let’s establish a key point: if you’re going to get married, it is absolutely the most important decision of your life. While your choice of career dictates how you spend a good portion of your life, who you marry dictates how you spend all of your life, because it dictates who you spend your life with. The best recipe for misery is a bad marriage, and the best recipe for greatness is either no marriage or a great one.

John T. Reed, author of Succeeding, wrote about both the great importance of marrying the right person, and the haphazard way that many people take to get there. He writes, “The divorce rate is about 50% in the U.S. The median duration of marriages is seven years—just enough time to have some kids and acquire property so that the divorce really screws things up. […] Why are so many people screwing up the most important decision of their lives? Look at how they go about it. I read a book once that said most Americans feel the correct way to meet your spouse is ‘chance proximity’. […]  ‘Some enchanted evening, you will meet a stranger across a crowded room.’ Ask an old maid or old bachelor why they never married and they often tell you that the right person never ‘came along’. ‘Came along’! You gotta be kidding me! People make more effort to buy the right used car!”

And he’s right! Why, of all our important life decisions, do we fudge this one?

My best guess at a reason is this: habit is a powerful force, and societal habit is even more so. This way of coming at meeting spouses began when communities were small enough that putting forth much of a deliberate effort was unnecessary, and it’s perpetuated itself into modern society on our collective force of habit.

Nowadays, though, there are so many more people, and so many more ways to meet those people, that a systematic approach to dating is in order. Read Succeeding for John Reed’s method; below I’ll detail my own.

First, create a list, as comprehensive as you want to make it, of every important trait you want in a partner. This is physical traits (i.e., a beard), personality traits (i.e., wanderlust), or anything else you can think of. Once you’ve made this list, rank-order it, from most to least important.

Now, make a similar list of everything you don’t want in a partner. Be specific, but feel free to be obvious – while “emotionally manipulative” is an obvious anti-want, it might still be useful to put it on the list. Once you’ve made this list, rank-order it.

After you’ve done both of these, now it’s time to do some market research. What kind of dating pools exist? While answering this question, be sure to keep in mind which of these you’ll be willing to utilize. If you live in the U.S. and lack the budget or inclination to travel, it might be out of the question to try to find a date at a convention in London. If you’re considering internet-based dating pools, make sure you think about whether you’re willing to be long-distance for an extended period. Make a list of some potential dating pools and rank-order the list by feasibility.

Now it’s time to merge all these lists. Figure out what kind of person you’re mostly going to find at each of these dating pools and compare that to your lists of wants and anti-wants. Re-rank your list of dating pools against these criteria, then compare your list of dating pools ranked by plausibility of candidates against your list ranked by feasibility. Whatever dating pool is ranked highest in both (feel free to bias your ranking toward whichever you think is more important for you), make plans to go there.

Let’s go through my own story as an example. My list of wants included someone who is sensitive, who is okay with going against the grain, and who could adapt to my hectic lifestyle. My list of anti-wants included someone who is overly pompous or self-centered. I was young and very broke, so my options for dating pools were financially limited, but I also didn’t mind distance (I’d never really been taught that it was supposed to be hard, so I didn’t think it would be; and now, after having “suffered” two years of distance, I maintain that view). Based on my specific desires, dislikes, and difficulties, I was able to put at the top of my dating pool priority list a convention in Baltimore that ran three days in August.

This process is not over once you arrive at your dating pool: aimless drifting is still not a good plan (though it’s a better plan here than it would be elsewhere). No, now were going to systematically look for possible candidates.

To start with, walk around and scan crowds, finding people you find physically attractive. This is easy to judge from a distance just by a look, so do that first. Second, walk up to some attractive people and have conversations.

Think of this like going to a used car dealership. First, you look around the lot to see which cars are aesthetically pleasing. Then, you go around to some of the ones you think look nice enough, and you sit in the driver’s seat. You can find out a lot about a car just by sitting behind the wheel – just like you can find out a lot about a person just by having a conversation. And just like you don’t need to take every car in the lot on a test drive, you also don’t need to take every candidate on a date.

This variety of speed-dating has the benefit that you don’t mess with anyone’s heart—theirs or yours. You simply have a list of traits to compare this person against, and all you’re doing is comparing.

An important thing to do as you continue conversing with people is to take notes from your conversations and update your lists accordingly. If you started with a list item saying you want to meet people who do X, but when you actually met several people who did X they didn’t seem appealing to you, modify the list! If initially you thought that people who did Y were unbearable, but you met some people who did Y and they actually were fine, modify the list! Make sure to also modify the priority order of things if necessary.

These lists are not set in stone. In fact, it would be silly to have your actual experience with real people take second place to what you dreamed up about what real people might be like.

Once you’ve gone up and talked to a bunch of attractive people (my benchmark was 25, but you can do more or less, depending on what you think will work for you), you’ll likely have a small set (2-3) of people who you like the best. Ask them on formal dates. Once you’ve spent a few hours alone with each person, you’ll almost certainly have a winner.

Pretty good, eh? The only thing we still need is to account for feelings. It’s all well and good to meet a person you think would be perfect, but you both need to fall for each other. How do you account for that? Very simply, actually. If you start to feel something good for them as you’re talking, keep talking. And, as you usually do when you date the conventional way, look for signs that they like you back. If you’d like to improve your chances, you can try to ask some or all of the questions on this list. Humans are hardwired to fall in love: it doesn’t take too much of a push.

Now, if by the end of your first venture into a dating pool, you don’t have a life partner yet, don’t worry! Just go on back to your lists and find your second choice for a dating pool, then rinse and repeat. It may also be possible that your criteria are too broad, or too narrow, or you were wrong about what kinds of people frequent what places. If so, don’t sweat, just go back and revise your lists with your new knowledge. Then go on back into the world and keep at it! Having a systematic approach will work so much better than just waiting for someone to “come along”, and it will feel better, too. You’re being way more productive!

Obviously, this is a very different approach than the conventional one. But if you step back and think logically about how people should go about making this choice, it’s a much more reasonable approach. I’m sure there will be people saying it’s “not romantic”, but approaches like these have resulted in lasting relationships: my father took a similarly systematic approach to dating and my parents have been together for thirty years; John Reed followed a similar approach and was married for much longer. You don’t need to take my four-year relationship as your only data point.

Furthermore, “romantic” should mean “spontaneous”, not “stumbled into”. Too often, people confuse the two. Romance doesn’t have to be about random chance.

I am a 4-year-college opt-out. Here’s why.

A few days back, a family friend asked when I planned on going to college. I said, “I’m not. At least not right now.” I didn’t have the time to explain my reasoning to her, so I don’t think she understood. But here, I have the time and the words, and I’ll try to explain the reasoning behind this massive and unconventional life choice.

Let’s skip back ten years, to the summer of 2008. My siblings and I are debating with our parents about where to go for dinner. As with most families trying to decide on things, we vote on it. By purely counting heads, the option the kids want should win, but my parents throw a wrench into the rules: “adults get five votes”. Suddenly, the kids are outnumbered.

I don’t mind all that much – I still get free food, after all – but I’m curious as to the reasoning. “So we get five votes when we turn 13?” I ask, being a Jew, who gets her bat mitzvah and becomes an adult at 13. “No,” says my mother, “it would be silly for you to be able to just age into it. You have to earn your five votes. For our purposes, an adult is someone who’s graduated from college.”

From that point onwards, I made it my goal to get into Stanford, where both my parents went, and in fact where they met. It seemed an accomplishable goal: both my parents had gone, and so from a genetic standpoint I had everything I needed. Furthermore, I considered, they were not genetic flukes in terms of intelligence: most of my grandparents had gone to high-end schools. My maternal grandfather went to Harvard, my paternal grandfather to Yale.

I took my first class at my community college at 14, thinking it would up my chances for getting into Stanford if I already had an Associate’s by the time I graduated from high school. My brother, who had decided on a similar track, took the class with me. I wasn’t sure about a major yet, but it also didn’t really matter: there were a ton of prerequisites I had to take, for both high school and college, before I needed to worry about it. So, we took Spanish 1.

I had a great time in that class for a number of reasons. I was absolutely stoked to be going to college, albeit a podunk community college. My professor was great (only later did I find out that this was a blessing rather than a rule), the coursework required a lot of study but was nonetheless fun, and I got awesome grades. I felt I was preparing well to go to Stanford in four years.

The knowledge that I was going to a four-year college, and furthermore, I was going to a top-tier college (Stanford preferably, but Yale, Harvard, or something else comparable would also do), saturated my entire childhood. I made every decision based on what would get me into the colleges I wanted to go to. By my sophomore year, I’d either taken or planned for seven AP tests. When it came time to study for the PSAT, I spent nine months doing so to the near-exclusion of all else. For my Associate’s, I chose only those electives that would prepare me to apply to the colleges I wanted to go to.

Until sometime in the spring of 2018, when everything changed.

Unlike a lot of major life shifts, it didn’t happen slowly. It happened in one fell swoop of three chaotic weeks, as I realized three fundamental things.

Firstly, I was sick of taking classes. It had been four years, and community college courses had turned from a joy to a slog. Seldom did anything I worked on in my courses relate to the real world, and if it did at all, it reflected real-life work through a funhouse mirror. I was close to graduating high school with my Associate’s in computer science, and I felt I saw the light at the end of the tunnel. At last, I thought, I could start doing meaningful work and creating value for real people! Wait, no, I couldn’t. I had to go to college. Didn’t I?

I started to doubt my rationale for pursuing college so ardently. I’d decided I would do it when I was a child, mostly because my parents had both done it. When a child thinks something is worth pursuing, it’s not because they’ve done a cost-benefit analysis and decided that it’s the logical conclusion based on their knowledge and previous experience. A child thinks something is worth pursuing because it sounds impressive, fun, or cool.

Further, societal expectations had pushed me away from questioning the idea of going to college. Even when I questioned the usefulness of college, I needed only to look at any book or article, or to talk to any human being, and I would have my wishes to attend college validated. On top of that, even the people who said college might not be a necessity for everyone continued to say it was the best option for smart people. And given our societal propensity for scoring children on standardized tests, it was always very apparent to me how smart I was, at least from an intellectual standpoint.

But now it became apparent that college was not the best option for me, or even a terribly good one. Everyone knows that the cost of college in dollars is excessively and often prohibitively high, but on top of that, I had to face the opportunity cost. My goals in life, like most other peoples’, had to do with the real world, with making money in real life, with having a career. If I went to college, I would put all that off for four more years. And for what? A name on a résumé and a few connections. The former might not even be necessary: I didn’t know enough about the work world yet to know whether any of my future employers would even care whether I had a degree or not!

Lastly, I realized that I had another option. Sometime in the spring, I heard about a business internship program called Praxis. Their business model: create a more practical college alternative by giving young people a six-month professional bootcamp, followed immediately by a chance to apply what they’ve learned through a six-month internship at a startup.

The process of learning about Praxis was what kickstarted me out on questioning the path I’d presumed my life would take from childhood. I had to face the facts: recently, despite my stated goal and plan for getting into a top-tier school, I was moving towards it like a duty, an obligation. When I was younger, learning had been a joy; now, I yearned to apply what I learned. I had kept going because I saw college as an inevitable end for a smart person like me; if not that, what else?

The answer to that previously-unanswerable question became Praxis. The application process was intensive, with a multitude of essays and interviews on a very tight timeframe, but I came out the other end with a scholarship and a plan. A very different plan than the one I’d had before, but also a plan I liked a lot better. A plan that brought the light at the end of the tunnel closer, instead of further away.

It was still hard to cope with my decision. For the next few months after my turning-point, I doubted myself a lot. It felt horrible that I’d spent so long working monomaniacally towards a goal only to quit at the last second. But I had to remind myself, I wasn’t quitting. I was choosing a better alternative, since I had more information at seventeen than I’d had at eight (surprise surprise!). I reminded myself that the statistics showed the uselessness of college as a preparation for real-world jobs. That tons of people, entrepreneurs especially, became very successful without degrees. That the field I was going into—technology—didn’t have a strict degree requirement (unlike, say, accounting, where you cannot practice without a CPA, and to sit the CPA exam you need ~150 credit hours of college). That Praxis provided me with the sort of community I was hoping to get from a top-tier school.

At the time of this writing, I’m a month into the six-month professional bootcamp. So far, I’ve hand-coded my personal website (the one you’re on right now!), fixed up my LinkedIn and résumé, and created a personal pitch deck (more on that in this article). Everything I’ve done is immediately applicable to my career.

Contrast this with the inapplicable classes and assignments from last year: AP Latin, during which I badly translated texts by Caesar and Virgil that had been translated much better by others, and tried impossibly hard to be a little less horrible at literary analysis; AP English Composition, during which I wrote a ton of essays and analyses I’m never going to publish because the prompts are so obscure and the topics would be boring to read about, and also tried to be a little less horrible at literary analysis; and AP Java, which consisted mainly of writing code on paper, by hand, with a pencil: something no programmer in their right mind ever does.

Finally I’m working on projects and learning skills that will actually matter to me in the long run. While I was in school, I frequently had to say to myself, “This may seem obscure or stupid or useless, but it’s moving me towards my eventual goal, so it’s worth it.” Now, I don’t need to: everything I do has an obvious connection to my goal. I was dreading the next four years of my future; now, I have a fresh start.

I’m looking forward to it.