書摘>>Skill Up: A Software Developer's Guide to Life and Career By Jordan Hudgens

Every developer, even senior developers, have insecurities when it comes to programming. 

I can tell you that the more experience I have as a coder, the more I realize how much more there is to learn and how far I still have to go.

So, instead of taking the mindset that you need to be a genius to become a developer, take the mindset that  best developers are also the hardest working developers. With this approach, your potential for skill is literally limitless. You are 100% in control of how good you will become as a coder. And your success will completely be determined by how hard (and how smart) you are willing to work.

The goal of studying is to learn a topic, and one of the easiest ways to understand a complex subject is to break it into easy to comprehend components. For example, if you're trying to understand an advanced algorithm in computer science from scratch, you may feel a little intimidated. However, if you break the algorithm down into small enough components you'll see that it's essentially a process of steps made up of connecting simple modules such as loops, manipulating variables, and using conditionals. A problem is only hard when you try to think of it as a whole. However, any concept can be understood if you simplify it down to easy to comprehend pieces.

A computer can take in information and then spit it back out. However, our minds are more relational in nature. By relational in nature, I mean that our brain functions like a graph-based network. If new information attempts to enter the brain without being connected to any of our previous knowledge, it will simply be rejected.

I look at reading like it's compounded learning. What is compounded learning? Good question! Compounded learning is the process of taking the knowledge from an individual, but not having to spend the same amount of time that it took that individual to research the topic. For example, imagine that you read a book on How to Become a Better Developer. The authorof the book had to spend years researching the topic (assuming that it was a well-written/well-researched book). However, if you go through the book in a few weeks, that means that you were able to gain years worth of knowledge in a few weeks! Research shows that top authors will spend a minimum of two years researching a book. And that research time doesn't take into account the fact that authors draw on their entire lifespans to write a book. All of this means that each time you read a book it's as if you were able to gain a lifetime's worth of experiences and wisdom from the author. If the CEO didn't dedicate time to read and learn from others, that means that he would be relying solely on his own knowledge and life experiences. And even the most brilliant business person will fail if they think that they already have all the right answers.

 

One of the top complaints I hear from students is that books are too expensive. My response is always: if you're not willing to sacrifice to improve, then you're not going to attain your goals. And that includes sacrificing financially.

 

You will never reach a point where your level of skill is maxed out. Maybe if you're a professional athlete and getting older, then your body is naturally going to decrease in performance. But when it comes to concepts such as understanding development, if you continue to dedicate yourself and if you're willing to listen to experts, your skill will never reach a peak.

 

Embrace failure and remove the requirement of perfectionism.

 

The fear of success is really rooted in the fear of the unknown.

 

"Being willing to fail is a liberating attribute of transformative thinking."

 

Proverbs 16:18 says:

"Pride goes before destruction, a haughty spirit before a fall."

 

事業和工作的區別在於:隨着時間的推移,你的事業讓你增值,而你的工作卻使你貶值。
 

When a client asks you to build a feature that you have zero experience with, my advice is to partner with a specialist in that area.

 

Assemble a team of developers and an assistant for marketing the services this team can offer and you got a business going.

 

Career Skills:

As developers, we're in a unique position where we can work in a wide assortment of industries: if you love sports you can work for a professional sports team, or if entertainment is your flavor then you can work for a media company. The possibilities are really endless.

 

A key insight that I've discovered helps quite a few people, especially newer programmers, is to look at developer job boards. Job boards are great for listing out the specialties that companies are hiring for. And by going through a list of potential job descriptions it may help you figure out what you want to focus on next in your career.

 

Deciding how to pick a programming language based on your development specialty means that you look at the types of applications you want to build. And then you work backwards to put together a list of languages that are best suited for your objectives.

 

If a world class bodybuilder would stop going to the gym, eventually he'd lose his muscles. In the same way if you stop honing your craft as a developer, you'll eventually lose your programming skills.

 

Coding is the closest thing we have to magic in this world.

 

Best questions to ask during a job interview

"How is performance measured for this position?"

This is probably my favorite question to be 

asked. It shows that the individual is not onlyinterested in the job, but also wants to have an understanding of what it takes to be successful. A key component of this question is also that the question focuses on how the company measures performance. This will give you a good idea of how data-driven the organization is and focuses on the key metrics that are important to the company.

"What are some specific challenges that I will be tasked with?"

Asking this question will show that you are not naive and that you understand that the job will have challenges and that you want to prepare for them in advance.

"Are there any responsibilities with the position that were not mentioned in the job posting?"

This type of question will tell the interviewer that you're savvy and experienced enough to know that 100% of the requirements don't always make it to the job website. For example, 

the job may be a software development job, however they may also want you to perform search engine optimization on the web application. This question not only positions you well with the interviewer but also will help you understand the full set of roles and responsibilities that the position will entail.

"What is the corporate culture like?"

I like this question because it will give you a feel for how employees interact with each other and management, it will also let the interviewer know that you aren't purely looking for a 9-5 job, you are interested in working with the team and fitting in.

"On average, how long do employees stay with the organization?"

Similar to the corporate culture question, this will subtly let the interviewer know that you are not looking for a short stint at the organization, but that you are looking for a long-term relationship with the company.

The answer to this question will also help provide you with the understanding of how tolerant the company is with regard to keeping employees. If the average employee has been with the company for only a few years there may be some issues causing the rapid turnover. Whereas, if employees stay on for over a decade, it's a good sign that the organization is a great place to work.

"Do you have any hesitations about my qualifications or experience?"

This is a bold question and you may or may not want to ask it depending on your confidence level. However, it will let the interviewer know that you're not afraid to ask tough questions and that you're willing to hear constructive criticism. I've personally never been asked this question by an applicant but I would admire anyone that would be willing to ask it.

 

And don't worry, you don't have to pay a high-priced PR firm to be quoted on these types of sites. I personally use a service called HARO (https://www.helpareporter.com/), which stands for Help A Reporter Out. HARO pairs individuals with reporters around the world. The way it works is that reporters can post requests on HARO asking for interviews or quotes on a topic they are researching. Each day I monitor HARO and when I see a topic that I am familiar with I'll write up a few sentences and send them to the reporter.

Terms:

TDD=Test Driven Development

BDD=Behavior Driven Development

Websites:

https://www.upwork.com/ is a website for hiring freelancers

https://screencast-o-matic.com/ screen recording software

Books:

Working Effectively with Legacy Code by Michael Feathers

Zed A. Shaw, the author of the Learn Hard programming book series.

The Fountainhead, Ayn Rand's

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章