开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
今日推荐开源项目:《性能书 go-perfbook》
今日推荐英文原文:《How to Start Your Own (Machine Learning) Projects》

今日推荐开源项目:《性能书 go-perfbook》传送门:GitHub链接
推荐理由:一般来说,把代码写出来之后才是真正工作的开始——改 bug,优化性能和组合各个模块等等。这个项目就是介绍如何提高 Go 代码性能的方法。虽然你迟早要想着让你的程序跑的更快,但是只有在你真的需要这样的时候才应该花时间加快它的速度,毕竟你原本可以拿这些时间干点更重要的。
今日推荐英文原文:《How to Start Your Own (Machine Learning) Projects》作者:Daniel Bourke

How to Start Your Own (Machine Learning) Projects

Dave started speaking.

The test results came back. Wylder’s deaf.


Yeah well, he didn’t register anything on the hearing scale, even when they were playing a noise as loud as a jet taking off in his ears.

What happens next?

We’ve got more testing coming up, if he’s eligible he’ll be getting Cochlear Implants to assist with hearing. But they’re unsure yet.

Dave is my best friend. Wylder is his son. He was born unable to hear. The Doctor said, “A 1 in 100,000 chance.”

I knew I couldn’t do much except listen. Feeling helpless is not a good feeling.

A few weeks later, we were at Wylder’s Switch On. An event where he would have his Cochlear Implants switched on for the first time enabling him to hear. He’d passed all the tests and was a prime candidate for the devices.

When they came on the lady played three sounds. One high, one midrange and one low. She tracked Wylder’s response to each of them. “The software will build in the gaps between.” She said.

There would be several subsequent appointments required to get the implants working at their full capabilities but for the first time, even if only slightly, Wylder could hear.

The morning before the event I got up early and started the Bioinformatics Specialization on Coursera. I wanted to know more. Had to know more. What’s Bioinformatics? It’s the crossover of biology and technology. Wikipedia adds a bit more depth.
Bioinformatics is an interdisciplinary field that develops methods and software tools for understanding biological data. As an interdisciplinary field of science, bioinformatics combines biology, computer science, information engineering, mathematics and statistics to analyze and interpret biological data.
Why Bioinformatics? I wanted to learn more about what was going on with Wylder. What’s a cochlea? What caused it? Was it a gene? Which gene? Could what I knew about programming help?

Why Coursera? Because it’s where the foundation of a lot of my learning has begun over the past 2-years.

The keyword is foundation. Courses and specialisations are great for this. But the real way knowledge grows is by tinkering, exploring, expanding, building upon these foundations.

So I built my own project. One to explore the DNA. To find the genes involved in inner ear hair cell development. What did they do? The hair cells are what translate sound waves into electric signals the brain can interpret as sound. Could I use what I’d been learning manipulating DNA with code in the Bioinformatics Specialization? Yes.

But it turned out to be all wrong.

Everything I did had no biological or scientific grounding. I made a video about it and someone in the comments said so. I already knew. I put a clause at the start of the video and one in the description saying so.

What’s the point if it was wrong?

We’ll get to that. Better to start with why first.

Why your own projects?

When you started learning to ride a bike, you had training wheels on. You learned how to peddle, how to brake, how to move the handlebars.

But you were missing something. The most important skill for riding a bike. Balance.

It was only once the training wheels came off did you learn how to balance.

I used the Applied Data Science with Python Specialization on Coursera to build a foundation of knowledge in data science. But I learned way more when I worked on building A Gentle Introduction to Exploratory Data Analysis. It was wrong too. People who read it did their own research and told me. So I fixed it. And then there was another error someone else found. Every error I fixed, I learned something new. Something deeper. Something I didn’t see before.

Having a foundation of knowledge is important. Knowing how to peddle, how to brake and how to steer is important for riding a bike. But learning more about these things isn’t going to help you when the training wheels come off.

It’s the same with courses. You can keep completing more courses, improving your foundation of knowledge (and you should) but don’t mistake this for competency.

Doing more courses on how to peddle better won’t enable you to ride a bike.

Only once you take your training wheels off do you learn to ride.

Something that might not work

That’s how the best projects start out.

When you go on a journey, it’s nice to have a compass and a map. But what if you only had to choose one? Which is more important?

The compass.


Because a map only has a set number of paths. A compass can be used in an unlimited number of ways.

That’s how you can structure your own projects. Start with a direction you want to head in. A thought, an idea. That’s your compass.

Planning out the steps you’ll take is valuable but don’t let it hold back exploration.

No great project ever started with someone knowing the exact path they were going to take in advance. If you already knew how it was going to work out, you’d get bored. A known future is already the past.

The crossover rule

Here’s where the remixing of ideas comes in. Let’s say you’ve been learning about data science and machine learning. You’ve done some courses but now you’re looking for more.

It’s unlikely you’ll ever be the best at one thing. You can try but remember, competition is fierce. A better option is to be the best at the crossover. The crossover of two things, three things, four things. Not too many though, otherwise the quality will start to decline.

How does this relate to projects?

You can take the foundation of knowledge you’ve been building through courses and combine it with the research you’ve done on mental health. How can you use data to show others insights into the world of mental health?

If you’re a musician you can use machine learning to construct a new song out of the old recording tapes you have.

The examples are endless but the formula stays the same. Whatever your interests, health, art, technology, science, finance, engineering, weather, where’s the crossover?

The crossover happens when you take one of your skills and pair it with another.

Permission to be wrong

Get something wrong on the test and it used to come back with a red cross saying you’re wrong next to it.

School reinforces avoiding being wrong. Life encourages it.

This doesn’t mean you should have the goal of being wrong. But when you’re starting on new work of your own. A project which might not work, give yourself permission to be wrong.


Because being wrong will adjust your compass. It’s a learning opportunity. Now you know where not to go.

My next project will be better because my last one had mistakes in it.

Create a timeline and start small

I’m going to work on this for four weeks.
That’s what you could say. One hour per day for four weeks is a good amount of time.

You can adjust the numbers to suit your needs. But having a deadline gives you something to work towards.

My brother and I were at the cafe. He started speaking.

I’ve been looking at this course.

Show me.

He showed me. I read through it. I spoke.

But you’ve already done all these things? The foundations, you’ve done, the advanced data structures you’ve done, the publishing your own project, you’ve done. What are you looking to get out of it?

I’m not sure I think it would help to learn more.

How about you build a small app a month? Call it App a Month and share a story about each one.

Yeah you’re right, week one could be design, week two planning and prototyping, same with week three, then publish in week four.

His eyes were on fire with ideas. I smiled. Then spoke.

Now you’re thinking.

You may not be able to control whether your project amounts to be everything you imagine but dedicating a set amount of time and effort is something you can.

There will always be interruptions. Life happens. When it does, take care of it and return to your project with the timeline in mind.

Once you’ve picked something to work on, shut everything else out for a period of time.

Start when you’re 70% ready

That’s enough. You’ll never be 100% ready.

A story to share

You’ve picked something which might not work, you’ve used the crossover rule. You started when you weren’t quite ready. And you’ve stuck to your timeline.

Now what?

Ship it. Share what you’ve done.

Now others can critique your work, show you where you’re wrong, show you where you’re right, help you get better, that’s what you’re after, isn’t it?

The next time someone asks what you’ve been working on, you’ve got a story.

I started working on a bioinformatics project, I didn’t know how it would turn out but I had an idea in mind. I wanted to see if I could combine what I’d been learning in the Bioinformatics Speciailzation on Coursera to my best friends son. He was born deaf so I looked into what genes cause hearing loss in infants. I found the ATOH1 gene. It’s responsible for triggering hair cell growth in the ear. Hair cells are what convert soundwaves to electric signals. It took me about a month of research and building but when I had something I made a video about it and published my code online. I realised none of what I’d found was biologically or scientifically sound. Someone pointed it out to me. But now I know where I’d go next. I’m hooked.

My bioinformatics project was wrong. But I learned something. I learned what to do next.

My Exploratory Data Analysis tutorial had errors in it. People were kind enough to point them out for me. It made it better. It made my future work better.

You’ve heard mine. What’s yours?