I gave a speech at SolarCity Toastmasters today. Here is my speech transcript.
Steve Jobs once said, “I think everybody in this country should learn how to program a computer because it teaches you how to think.” Marc Andressen has a famous article, “Why Software Is Eating The World,” about how software is automating all kinds of routine jobs, and coding is becoming a digital literacy. Therefore today, I want to tell you why you should learn how to code and where to start.
There are three main benefits I think coding can bring you. First is job opportunities; second is the fun to create your own projects; third is the super power in the future. Continue reading
Do you know how to pronounce Parenteau? Evelyn explains how to pronounce her last name. If you want to know how to pronounce her name correctly, listen to this episode. Her last name was popular in France (not sure about the current status). If you know French, maybe you already got it right. 🙂
Evelyn is a full stack engineer. She works on the front end, back end, embedded, Linux kernel, drivers, CPU design, and board design. Basically she can work from the front end to the parts reaching the manufacturing materials.
Evelyn speaks highly of the computer systems engineering major she took in college. She learned electricity, circuit, transistor, and also computer science fundamental, different languages, and software engineering practices. She feels that she got the best parts from electrical engineering and computer science training.
Michael Gao is a Software Engineer at SolarCity. In this episode, Michael talks about his decision to return to the Bay Area after graduating from Johns Hopkins University in Baltimore, Maryland. Michael started out as an environmental engineer, researching hurricane induced power outages but later became a software engineer. To help contribute to his research group’s model, he learned R programming, and eventually learned other software tools to explore ways to the model faster and more accurate.
He remains curious in learning. He sees programming as a tool, and the application is where his passion derives from. He feels it’s quite fortunate and a coincidence for him to become a software engineer. He talked about how he got the job at SolarCity by learning about the opportunity at a conference. Michael compared the differences between working as *a contractor within an applied science program* at NASA and SolarCity.
For the second interview, I’m happy to invite Henry Ng, a software engineer at SolarCity. 吳奉全 is Henry’s Chinese name (if you are wondering). He can speak Mandarin and Cantonese (and English of course).
We chatted about Henry’s decision to move to the Bay area from Canada, and about the differences he’s found between San Francisco and other parts of the world. He thinks people in SF are more forward thinking. People in SF believe they can change the world and improve society. He talks about how Canadians fit into the Silicon Valley. Visa issues and housing conditions are big concerns to almost every immigrant here.
For the first interview, I’m honored to interview Jordan Olthoff, a software engineer at SolarCity. In this episode, we learn that Jordan grew up in San Diego and came to the Bay area 6 years ago. He studied psychology in college and has pharmaceutical research experience. He recently started his career as a Software Engineer at SolarCity. We had an interesting discussion about how psychology might influence his thinking and help him in developing software.
If you are a developer in the web development world, you know that we are in a fast evolving industry. There are tons of new things happening every day. In order to be productive and build great web applications, we need to learn everyday. Attending conferences is one of many great ways to learn. In the conference, I can observe what the current trends are, how people solve problems, and how to make our development lives easier with new tools.
Luckily, my company, SolarCity, supports me to attend conferences. Our team went to the 2016 Fluent Conference in San Francisco last week. It was my first time attending a large-scale programming conference, and I really had a great time learning from all sorts of topics there.
Below is my learning summary:
The web development world is really energetic. Lots of companies provide frameworks, tools, testing, deployment solutions, trainings, etc. The barrier to start building a web app is becoming lower and lower everyday.
If you are front end or full stack software engineer, you usually manage your app’s dependencies in your package.json (NPM) and bower.json (Bower). Do you have the experience that you need to update all the dependencies to the latest version?
I understand some developer don’t like to use the latest version of libraries because of compatibility issue. However, I feel most of the time, the updated version of libraries are more stable and reliable (bugs fixed and people’s open source contribution to make the software better). Our team at SolarCity before didn’t update some dependencies to the latest version for one of our apps. However, I found out that one of the error we saw wouldn’t even happen if we use the latest version of the library. Therefore, after discussion, we decide that we would use the latest version of libraries from then on. One problem is that it’s such a pain to update dozens of libraries in our json file.
Here is the package file for my previous project: OpenElect. Oh dear, how many dependencies are there…it will take years to manually update the version number.
Angular Style Guide: I always mis-match the John Papa’s style guide with Papa John’s Pizza…You might find me saying Papa John’s style guide and John Papa’s Pizza sometimes…Anyhow, John Papa’s Angular Style Guide is definitely the Bible of Angular style guide. If you are new to Angular, please definitely check this for the best practice of Angular.
Ask not what your industry can do for you–ask what you can do for your industry.
In Hack Reactor week 1, we had a class in which Phillip Alexander taught us about open source contribution. Before we talk about “contribution,” let’s find out what open source is. Wikipedia’s definition: “In production and development, open source as a development model promotes a universal access via a free license to a product’s design or blueprint, and universal redistribution of that design or blueprint, including subsequent improvements to it by anyone.”
The easiest definition for open source is this: it means anything that is free to use, reproduce, or redesign. We all know the power of crowdsourcing. If there are 10 thousand people reviewing and contributing to a project, we would assume it to have less typos/bugs. Open source contribution’s goal is to make software safer & better.