How to be Productive

There’s no other clickbait I fall for harder than any productivity-related headline. Safe to say I read way too many productivity articles, even though they all expound on the same basic suggestions. That being said, I do think humans need certain tips pounded into their heads several times in different shapes & forms before they finally act on them. So hear it again! Here are some of the only productivity tips that work for me.

Embrace natural light.

It’s just a known fact. Natural light means better sleep, thus alertness through the day and higher productivity. Plus too much artificial light gives me headaches.

Leave the house.

No matter how great of a workspace I try to set up in every apartment, I end up getting almost nothing done at home. The temptation of having my bed less than 20 feet away is too great. Not only that, but apartments with great natural light are hard to come by (I’ve certainly never lived in one). Working in cafes or high ceiling libraries are much better environments. Plus, every time I look up distracted all I see are fellow people working!

Timebox.

Call it time block, timebox, obsessive scheduling or whatever, but it really does work. Plan every minute of your day, break it down into 30 minute chunks, and switch tasks regularly. When I started doing this I was really surprised at how much faster I accomplished tasks than I had estimated, as well as how many tasks I could accomplish in an 8 hour day (to the point where you start to think ‘hmm, I should think of more to do’).

I usually stay flexible after planning, e.g. if I go over time limit on a certain task I’ll shift things around and let it be. The important thing is to start the task and get the menial, easy to accomplish things out of the way. It’s really quite amazing how much you can get done if you just plan (and conversely, how much you won’t get done if your to do list is floating around in your head or living in checkboxes instead of on a calendar. Or if your goals are grand but too lofty to accomplish at once without breaking down into chunks).

Turn off notifications.

Though I’m definitely not at a level where I can stop checking social media or quit gchat altogether, I’ve learned to turn off notifications and block all interruptions (at least, non-work related ones) while trying to get things done. Giving into temptations of checking your phone or email is already enough. Don’t let it bother you first.

Say no.

I’m still learning this one, but you really can’t do everything. If you’re not at least 90% convinced of an idea, whether that’s a party you were invited to or a new side project collaboration, don’t do it. Same with hobbies or things you’re trying to learn, scheduled activities, and literally anything. Since getting serious about studying web dev I’ve said no a lot more to plans with friends, church meetings, fun Meetups and regular gym time – all not ideal, but necessary.

Make it as easy as possible to begin.

Pack your bags and choose your outfit the night before. Set up your workspace, Sublime editor and dev tools in advance. Write your name in the Word doc. You’ve heard it before and you will keep hearing it until the end of time, just start.

Say no to meetings! (but talk to people)

This one’s just work-related, but try to avoid any meeting where you’re not absolutely needed. Emails, one-on-one touchbases, and walking to people’s desks to have conversations is the way to go.

Write it all down (by hand).

It took me 3 years into college to finally learn how to effectively study with no one hovering or forcing me (and then the ‘A+’s rolled in! #notsohumblebrag). All it really took was me writing study notes/outlines on paper (definitely not on the computer! Don’t do that) and reading/highlighting. As more productivity apps beckon for attention, I still think the best ‘hack’ is to get down & dirty with pencil & paper - this goes for studying, planning, or any high level thought processes.

Discipline, not motivation.

Motivation is a little like runner’s high (maybe, I’ve never experienced it): it comes during & after working, not before. There will be very few times motivation to do hard tasks will strike, most likely after long stretches of time that you haven’t done work that guilt starts to motivate you. Whether I’m motivated or not, I know that Sundays and Mon/Wed nights are times for studying. Embrace habits & routine, displace waiting around for motivation.

Some tips I’m still working on:

  • Wake up early: I’d like to say this is impossible due to the very warm nature of my bed, and the very cold nature of everything not my bed (solution: wear more clothes?) But morning time is most alert & productive time, so I’d like to get in this habit.
  • Do your most challenging task first: My work responsibilities make trying this tip difficult, but on the weekends I’ve definitely found it works. Tapering off in work flow is natural, so get the hardest thing out of the way and you’ll feel great!

More reads on productivity:

  • Why procrastinators procrastinate, and how to beat procrastination (Wait but Why)
  • One of my favorite sites, catered toward creatives but really for anyone who wants to be a maker. (99u)
  • Straightforward, high impact reads on the importance of building habits (James Clear)
  • Go beyond just getting things done - access deep processing on a regular basis (Cal Newport)

Fullstack Flex Week 1

It’s already been one full week since my first day of Fullstack Flex! My cohort is comprised of 12 people, all from unique backgrounds working in different industries (tech, health, consulting, etc.) Some are looking to make a career change, but many are also just looking to expand their knowledge and learn to code to have the power to create. Everything bootcamps advertise about their students is true—students are hungry and eager to learn and all excited to be there. It’s a super refreshing environment and makes you more energized as well.

During the week we reviewed Javascript problems from Foundations, the pre-work course, and through David and Nimit’s in depth explanations I grasped so many concepts I struggled to self-teach myself. Concepts such as closure, prototypes, and inheritance became familiar, then even more confusing, then started to kind of make sense again. It was great to also begin considering runtime and avoiding expensive calls when writing code, instead of just aiming toward what works or what’s most concise.

I’m starting to feel the struggle of balancing work, class, health, sleep, and social life and know the dilemma will only get graver as the weeks go on—I’m not keeping up with at least 2 or 3 of the 5 at any given time. It’s difficult to adopt the “drop everything and go” mentality that full-time bootcampers have, mainly because the purpose of the part-time program is to give leeway and allow you to also work full time. I know I’m being selfish in wanting to be in control of everything, but understand that will lead me to lose control of most things. Better to focus on a couple at a time! At present, I would obviously like to prioritize focusing on the class while still being fully present at work during work hours, and know I should not compromise on health and sleep too much. It’s those off-day off-hours I need to optimize! Will update progress as I go along.

Speaking of off days, a huge benefit of the part-time program is the downtime you have between the days of classes. This has already proved helpful in further studying concepts you didn’t fully understand in class. For example, I was pretty confused over the difference between classical & prototypal inheritance in Javascript. I’d like to write a full post about this someday, but for the time being I’ll explain what I’ve gathered here.

  • Classical inheritance doesn’t truly exist in Javascript since there are no classes, but the new keyword and constructor functions aim to resemble classical inheritance found in many other languages. So as an example, you would have SuperUser inherit from User by setting SuperUser.prototype to User.prototype, either by Object.create or new. Both SuperUser and User are constructor functions and thus capitalized for convention.
  • Prototypal inheritance in its true Javascript form doesn’t involve constructor functions nor the new keyword. Instead, you would have a function user_prototype that has relevant functions for other functions to “share”. Then, user’s prototype is set to user_prototype using Object.create. One can also chain objects: super_user’s prototype can be set to user also using Object.create.

A powerful trait of Javascript is polymorphism, where “methods” (just functions in JS) can be overriden (ex. SuperUser’s prototype can have a method of the same name as User’s prototype, which thus overrides the User prototype method). This applies to both the classical and prototypal inheritance approach to writing Javascript. Normally in other languages with classes, this is not the case.

Hopefully the above was helpful to those stumped over inheritance! I haven’t fully grasped it but I think I’m getting there. Both the article Why Prototypal Inheritance Matters and the Mozilla documentation for JS were helpful as well.

Another New Year

Happy new year! This year so far isn’t feeling too much like a new year or a fresh start, in a good way. I’m finding as I grow older that new year’s resolutions are more oppressive than inspiring — every day should be an opportunity to make a new resolution (cue the cheese).

That being said, I do have a running Google doc of things I’d like to focus on:

  • Hack on & build many projects! (prioritizing Fullstack as a main experience, which starts this Saturday)
  • Initiate side projects, be they development related or lettering, design, music or anything else
  • Build faith and focus on becoming closer with God
  • Cultivate the relationships I care most about, both family & friends
  • Cook more & spend less!

As mentioned at a standup show I went to last night, it’s almost ironic how resolutions are meant to be started on January 1 after a lazy languishing period of binging on snacks and Christmas candy and watching Netflix, aka the holiday season. I’m slowly getting back into the groove of things, though - as long as I get started it’s easy to keep going!

On an ending note: I came across this tweet about recording personal victories (small or large) every year. A good practice to keep in mind when we humans tend to dwell on improving the negatives.

Why I Want to Code (A Brief History)

My days of coding in its most elementary form started when I was around 9 or 10, when I first discovered HTML and how it could be used to create web pages much like the ones I interacted with daily. I created a Freewebs account (remember that? I believe it now goes by <a href=“http://www.webs.com/“>Webs) and made an About Me page with an accompanying cartoon polar bear image. During my teenage years, I ran with the little HTML and CSS knowledge I hacked together to spruce up my web presence scattered across multiple social networks and helped my friends edit their Myspace or Tumblr themes as well.

Back then, there was very little information or tutorials compared to now, and what did exist seemed so convoluted or irrelevant I wasn’t sure where to begin. So while I used other people’s CSS themes or layouts to dress up my Livejournal or Tumblr and learned my way around editing hex codes and other properties to make it look how I wanted, the thought of making my own themes from scratch (or building an entire website, not a page) was daunting and seemed nearly impossible. When mobile web and apps got big, those were even bigger behemoths that were both awe-inspiring yet so very out-of-reach.

When I got to college, becoming a developer was still a budding dream. I had taken AP Computer Science in high school and thanks to an incredible teacher, learned my way around Java pretty easily. I decided to take the intro CS course at Berkeley, but was soon overwhelmed by the fast pace and workload. In retrospect, it was a class I could have succeeded in but I didn’t know yet that one of the most crucial aspects in learning to code is asking questions to instructors or TAs and coding together with classmates. I was suffering trying to learn by myself and hadn’t used my resources. I was sufficiently discouraged and after that semester, I didn’t approach another CS class despite my growing interest.

Throughout college and into graduation, I stayed interested in the web and took various web production jobs, whether at nonprofits or magazines. Upon graduation I began working at <a href=“http://modaoperandi.com”>Moda Operandi, quickly transitioning into an email marketing role where I used my HTML & CSS coding skills to build daily emails. There I first learned about responsive designs built for different screen widths and got more comfortable coding within the limits of email (e.g. lots of tables and inline CSS to account for different email clients’ rules). I came to really enjoy testing across different clients and troubleshooting code to make the appearance seamless for all subscribers.

I decided to reignite the flame of going into web development and started going to Meetups and doing various web tutorials, both to strengthen my CSS skills and for other languages such as Javascript and Ruby. Eventually I decided to take the leap and apply for Fullstack Flex to become comfortable and proficient in both front and backend web development, and to have the power to create websites and web apps from scratch.

Throughout the 10+ years I’ve dabbled in coding, the driving force behind my desire to code has been about the ability to create. Similar to writing or drawing, coding gives one the power to make ideas into a tangible reality. It is a tool that anyone can and should learn how to utilize to make their dream phone app, website, or even simple automation tools that simplify one’s workflow. Learning to code started from simply wanting to create a web page about myself and then evolved into wanting to design my blogs in a unique way to differentiate it from standard templates. Now, my desire to learn how to code stems from wanting to be an inventor, either for myself and the various ideas I want to execute or for clients needing design or functionality solutions for their websites.

Another big influence on why I wanted to code comes more recently while working at my job. Fixing and optimizing emails to better engage subscribers is very satisfying, and I would love to take that a step further and learn to optimize functionality and add useful features to our website. I can relate to all of our customers’ frustrations about our product and would love to have the ability to help fix bugs and build features that would ease their experience. Whether that be for work, for outside clients or for myself, optimizing the user experience for web products that people interact with daily is a huge reason for why I want to code.

My road to code for the past 10+ years has been quite convoluted, but my desire to create products and fix problems has not wavered. I am so excited to take a leap and learn the MEAN stack at Fullstack - by the end of six months I aim to have various projects under my belt that I’ve created from scratch and hone my ability to think like a hacker. That being said, I know Fullstack won’t be the end of the road to code: this is just the beginning!

Fullstack Flex Immersive

Today marks a week since the whole of America stuffed their faces with turkey, cranberry sauce, mashed potatoes and related goodness, and also a week since I got accepted to Fullstack Academy’s Flex Immersive!

I’m beyond excited to be part of Fullstack Flex‘s first cohort, a six month part-time coding bootcamp with the same curriculum and concept as their three month full-time immersive. I had been debating the best course of action toward becoming a web developer for a while, but ultimately decided on Flex as the best decision to really accelerate my growth. Below were some of my thought processes while coming to this decision.

#Pros of Flex:

  • Money!: The price of coding bootcamps is no joke - while the ROI will surely pay off, the price of both tuition and cost of living with no income in NYC is a serious investment that deter many people from bootcamps. Flex allows students to keep their income, thus providing a level of financial comfort while still pursuing a career change (a great comfort to my parents!)

  • Flexibility: Similar to reason listed above: potential students might not be willing to leave their jobs altogether or have other commitments during weekdays 9-6, but still want to learn all the skills required of web developers. Flex provides exactly that.

  • Intense Curriculum: One could argue that there are many low cost or free classes and meetups to learn web development. In NYC alone there are a ton of great organizations such as Code Crew or Girl Develop It that provide night or weekend classes, but these are usually more like brief introductions for those looking to get started in a specific language or concept. Recently Codecademy Labs launched in NYC. Labs seems like an incredible low-cost program, but it didn’t fully appeal to me since all work is done strictly within the web browser, and I think it’s important for a curriculum to encourage building projects from scratch and working from the command line as one would in a real job. Flex is the first program I’ve seen that quite literally translates the bootcamp experience into a part time program. The material covered encompasses both front and back end, all Javascript (another very enticing pro of Fullstack). A hefty amount of time is devoted to building projects, both alone and with teams. It also encourages participation in the NY tech scene, participating in hackathons and learning more about startups. Fullstack’s full-time bootcamp appealed to me more than GA, App Academy, Flatiron School, Dev Bootcamp, etc. and the fact they are the first to launch a part-time bootcamp shows how much they are listening to prospective students’ feedback and are ahead of the curve.

#Drawbacks of Flex (at present):

  • First Cohort: The upcoming January cohort will be Flex’s first cohort, so there are no previous success stories or statistics of Flex students graduating and being hired as full-time web developers. I imagine several of the students could be taking the class to build skills to use at their current job as well. Ultimately, I think Fullstack and its founders Nimit and David are very invested in students finding web dev positions and will be closely overseeing Flex to ensure the program’s and students’ success.

  • Work/School Balance: When talking to other prospective students, this was the biggest reason the students were not as interested in the Flex program vs the full-time program. It was simply too hard to work a full time job and also learn to code on nights and weekends. Valid point, and the folks at Fullstack seemed to have taken this into account and lengthened the program from 16 to 24 weeks to ensure all material could be covered at a comfortable pace (plus more time to process and fully grasp concepts!) Whether full-time or part-time, students are going to have to cull down on other obligations and live and breathe code (or live and breathe work and code, in my case).

I hope this helps anyone debating the merits of Flex Immersive! Please feel free to reach out over Twitter if anyone has questions about the process. I’ll be documenting thoughts and progress during the course of the program as well starting in January. I’ll be cracking down on the pre-work course Foundations in the meantime…