Node.js: Learn from the guy who wrote the book—actually, 14 of them!

Introduction to Node.js

If you’re a software developer with a few years of experience, and you’re new to Node.js or web development, join popular instructor Benjamin Lin and author and founder of Node University Azat Mardan for Introduction to Node.js, now available on edX. In just a few hours (and using the latest materials), make the leap from desktop apps, and see how easy and fast it is to get started on Node.js. Plus, who better to learn from than the always-entertaining Benjamin and his colleague Azat, who has written more than a dozen books on Node.js?

Continue reading

All Things Open 2017, Serverless and State of JS

React Quickly book signing at All Things Open 2017

I recorded my conference presentations last week. The conference was All Things Open and had 3200 attendees. Huge!

Watch my serverless talk at https://www.youtube.com/watch?v=2HMuTVOmX_U.

And watch my State of JS at https://www.youtube.com/watch?v=ay7SlPkENeA.

Also, I brought 50 books of React Quickly and gave them all away. The line of people to get a free copy was huge. I met a few of my fans there. Fun stuff.

7 Tech Job Which Don’t Require Coding

7 Tech Job Which Don't Require Coding

Technology is the fastest growing sector in the job market. Software, cloud and automation replace traditional jobs of factory workers, secretaries and service workers. Software and technology companies are the most valued by the stock market and investors. Founders of these companies are one of the richest people in the world. Startup founders and nerds are new role models for kids.

But what if you are not coding prodigy like Mark Zuckerberg or Bill Gates who started coding in their teens. What if you don’t really enjoy coding that much or maybe you are more of a peoples or a liberal arts type of a person? Do you prohibited from a tech industry? Most people don’t know that they are plenty of jobs in the tech industry which do not require coding.

Of course, you cannot be a clueless pumpkin and know nothing about tech. You still have to be technically literate and know what is a database or an API is, but you’ll mainly be leveraging your existing skills from another industry, not starting from a scratch learning coding. (Learning coding when you are in 50s are still possible. I saw it happen a Hack Reactor where I taught. But let’s admit, on average the wits become duller with age, not sharper.)

Here are seven (7) such jobs which do not require coding or deep technical expertise but can be interesting, fulfilling, and well-paid.

  1. Program Manager
  2. Product Manager/Owner
  3. Scrum Master
  4. Designer
  5. User Researcher
  6. Recruiter
  7. Tech Writer

Let’s me give you some brief insight into each of them.

Continue reading

Learn Amazon Web Services

AWS-logo

Over the past few months, I have been focusing on teaching cloud technologies with Amazon Web Services and other providers. I created a rather a large collection of resources which will help you to learn Amazon Web Services.

First of all, here’s a series of blog posts for total beginners with Amazon Web Services:

Then, here’s a more advanced blog post on ECS and Docker: Deploying Node and Mongo Containers on Amazon Web Services Elastic Container Service (AWS ECS)

Lastly, make sure to checkout some free preview lectures of these Node University courses:

Amazon Web Services is de-facto a standard of cloud computing. Every software engineers should know at least its basics if not know it to an intermediate level.

Ideal Technical Interview for Software Engineers

Ideal Tech Interview for Software Engineers

Here’s an ideal I strive to achieve when I conduct technical interviews for software engineering positions.

  • I start with introducing myself
  • I provide a take home assignment instead of making people perform coding at the interview and, what’s even worse, on a white board instead of a computer.
  • I ask attitude questions more than skill questions to see if a person has the right mentality to learn and solve problems instead of just knowing certain skills. There’s a good book called Hiring for Attitude.
  • I dig deeper into what exactly the candidate’s role were in his/her prior projects.
  • I ask questions which are closely related or mocking the real work situation for this position. For example, a member of the Capital One Tech Fellows Program is often asked why X is better than Y or what framework should we use in our new project.
  • I leave enough time at the end of the interview to answer candidate’s questions about the role, team and the company or anything else they want to ask
  • I say a few things to create enthusiasm in this role and possibilities

In an ideal tech interview, you would just skim through the candidate’s code on GitHub, chat about recent happenings around the tech you use, and talk about life. That’s it. You don’t even need a resume in most cases. LinkedIn has the job history and GitHub (or HackerRank) is a living (almost fool-proof) evidence of the skills.

 

On Managing: The Main 3 Areas to Focus On

The more I work in tech, the more I see the most successful management being at the core about these three separate and often conflicting areas:

  • Company: Contributing to your companies bottom line by understanding the business value and long-term strategy
  • Customers: Taking care of your costumer by delivering product they want and love
  • Culture: Growing your engineers as well as positively impacting engineering culture in the company as a whole

At the intersection of these areas, there are two often conflicting axis which create a healthy push and pull if used with a right balance:

  • Short-term vs long-term, e.g., delivering projects on time vs. doing what will scale better in the future
  • Us vs. them, e.g., caring about your team vs. company or the entire engineering population

A good manager in the information-based working environment will find a way to combine the aforementioned areas and axis to form a win-win situation. It’s not always possible, but I find that it’s possible more often than not when I just push a little bit more and don’t give up early, when I try to come up with just one more creative solution.

PS: To continue musings, there are two books on the topic worth mentioning. I wrote a short summary on one of them which is called Managing Humans. I really liked that book, but recently I read another book called The First-Time Manager which seems to be the source of inspiration for Managing Humans, to put it mildly. I’m not accusing the author of Managing Humans in plagiarism, but I had a strong feeling of deja vu. It felt like Managing Humans borrowed the outline and a lot of ideas and concepts from The First-Time Manager. Interesting…. So go for “original” (The First-Time Manager). It’s not as specific and tailored to software engineers but a useful perspective. Then follow up with The 48 Laws of Power for a completely different view. :)

Terrible Kickstarter UI

Practical Node.js, 2nd Edition Kickstarter campaign

Recently, I launched a Kickstarter campaign to fund my new book and make it “open source” (basically, write the book in the open on GitHub). The campaign was funded in 2.5 days. You can still support it. We strive for 200% goal to open another book!

While the support and backing of JavaScript and Node community were AWESOME, the Kickstarter UI was terrible. I did two other campaigns before (about React and Mongoose) and the Kickstarter UI didn’t change a bit. It’s a simple web app, so I’m surprised and annoyed that they didn’t care to iterate on the UX and UI in the last 2-3 years. 

Continue reading

One Technique Guaranteed to Improve Your Coding Skill FREE

One Technique to Guaranteed to Improve Your Coding Skills for FREE

What if I told you, there’s a one technique which will GUARANTEE an improvement in your coding skills and… it’s FREE. There’s no need for a partner, or expensive equipment, or supplements/nootropics. I’ve been using it for many years now and I became much better software engineer as a result. I was able to write 14 technical books while having a full-time job coding, speaking at conferences and teaching workshops all over the world.

More over, a lot of people outside of tech and coding use this technique to gain great advantage and improvement in their work: actors, writers, athletes, etc. It’s one of the best kept secrets and has been for many hundreds of years and probably longer. But hundreds of year ago, only select few people knew about this technique. Now anyone can tap into its power… but will you be the one to rip the benefits of this awesome technique for your career?

But let’s get back to coding.

Let me ask you: What is the most important important skill in coding?

What allows you to dig deeper into a problem and come up with a solution? No. Programming languages and apps are just tools.

To make it more specific, what allows you to track a function call and keep in memory three different variable values while also applying methods on an array and noticing places where you can refactor the code to make it better?

Let me give you the hint: experienced programmers (10+ years) have this skill in abundance. This is why they can solve complex problems and work with technologies which make any one else on their team cry like small baby. Senior programmers are masters of this skill and I won’t be surprised to find out that most of them use this productivity-boosting technique.

Do you know by now?

Can you guess?

It’s focus! Focus is the most important skill for a programmer. If you can focus more, then you can solve very complex problems. If you can change your focus from one thing to another faster, then you can be more productive. Most coding tasks require focus, e.g., finding bugs or find abstraction patterns to improve code and systems.

And what is a free technique to improve the focus? It’s meditation. It’s free. There’s no need for equipment. There’s no need for a partner. It’s affordable to anyone!

Any excuses like “I’m not good at meditation” just means you need meditation the MOST to calm your monkey brain. In our world of Slack, Facebook, Twitter, Snapchat and open offices it’s the people who can perform deep work that will be value and will get ahead.

Not convinced? Meditation is popular in India and look how many programmers from India are out there! I’m not saying I have hard data to prove anything. It could be just a coincidence, but my gut feeling is that there must be something to it.

Also, programming itself is a state of a blissful flow or trance. The more you do it the better you become at going into the flow state. Programming itself is like a meditation!

I paid more than $3,000 for my yoga teacher training. That’s an expensive way to learn meditation which basically what yoga is. Luckily, you don’t have to pay as much unless you want to have a motivation from spending all that money.

You can start just by counting from one to four for FREE. Start with 5 minutes per day for 1 month, then increase to 10 minutes. Give it a few months. Notice any improvement in your ability to focus while coding. Leave a comment here or write me an email about your results.

Node v8 and npm5

It’s finally here. Node v8 which is based on Chrome V8. Got the pun? Haha.

What’s new? Here’s a gist:

  • Better native (C/C++) modules support with N-API
  • V8 v5.8: better performance and dev-facing APIs
  • util.promisify(): improved support for Promises in the core
  • Newer CLI debugger: replacement of the debugger
  • WHATWG URL Parser
  • Buffer improvement

For full list of changes, check Node’s blog.

Coincidentally, npm also published a new release. Here are the changes and they are rather big:

  • Faster… like 5x times faster!
  • Default lockfiles: all npm installs are now reproducible
  • SHA-512: prevents corruption or malicious attacks
  • Summary report: less clutter without showing you the entire tree
  • Save dependency by default: when you npm install something it’s like npm install with  –save before

More changes on npm’s blog. Upgrade npm to npm v5 with “npm i -g npm@latest”. If you get Node v8, then npm v5 is already bundle in it.