开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
今日推荐开源项目:《方便调试的 CSS Debucsser》
今日推荐英文原文:《How Producing Electronic Music Helped Me Learn To Write Code》
2019年1月7日:开源日报第305期
今日推荐开源项目:《方便调试的 CSS Debucsser》传送门:GitHub链接
推荐理由:这个项目允许你很轻松的查看网页上每一个元素的 id,class ,大小和边框范围,在你对着自己的网页进行调整的时候相当管用,最起码你不再需要打开 F12 的调试来一个个慢慢找了。它的 chrome 插件正在开发中,到了那时安装将会变得更加方便,如果需要经常写网页的话可以考虑加入自己的关注列表了。顺带一提,示例里的 id 一栏中那个不像是 id 的表情符号表示的不是某个 id 而是不存在的意思……不要再对着源码找这个 id 了。
今日推荐英文原文:《How Producing Electronic Music Helped Me Learn To Write Code》作者:Spike Burton
原文链接:https://medium.com/@spikeburton/how-producing-electronic-music-helped-me-learn-to-write-code-c9cbcf8fe887
推荐理由:电子音乐和写代码看上去是两个完全不相干的事情,但是实际上有着一些共同点

How Producing Electronic Music Helped Me Learn To Write Code

2019年1月7日:开源日报第305期
A project file in Ableton Live 10

Producing music, just like working with computers and writing code, is an interest and passion that I have maintained on and off for the majority of my life. Creating music and writing code are similar disciplines with a like set of rules: learning and understanding the language, establishing form and structure, and iterating on what you already know. With programming, you have to learn the syntax and idiosyncrasies for the language you are working in, as well as learn established best practices. With music production, you have to learn music theory, arrangement, sound design, and mixing/mastering. With programming, you have to learn the popular libraries and frameworks and how to build with them. With music, you have to learn the tempo range, structure and sound palette for a given genre. Finally, both disciplines rely heavily on the concept of iteration: gradually building upon a base skill set with more advanced topics until “mastery” can be reached. This last concept took me some time to understand, and it is essential to embrace in order to enjoy the process.

When I first started to learn to code as a young teenager, I wanted to create a massive sprite-based RPG. The undertaking was far beyond my ability at the time, and after months of frustration trying to figure out where to even start, I gave up. I was reading any book I could get my hands on: C++, Game Design, Graphics — you name it. Although some of the concepts were over my head at the time, I gained a solid foundation in computer science concepts and how designing a project should work. I later took AP Computer Science in high school, which helped me to solidify some of these ideas. However, my dream of creating something impressive was put on hold.

When the Bass Music scene started to emerge in the mid-2010’s I was again determined to figure out how to create something unique and innovative. I watched countless YouTube tutorials on sound design, arrangement, mixing, and mastering. I read any and every blog post I could find about electronic music production. However, I spent barely any time actually making music. I was convinced that I would retain this information and eventually sit down to write a masterpiece.

And then I finally sat down to write.

As expected, what I was able to create was nothing like what I heard in my head. I was so discouraged and embarrassed with my initial output that I wanted to give up completely. Why wasn’t I instantly great? I had watched practically every tutorial on the internet. Why couldn’t I instantly create at a professional level? I knew deep down that I had the ability to become a great producer. What I did not understand, however, was the process that it took to get there.

As I started to sit down and write more everyday, I started to make progress and overcome the frustration. I tried to divide up my writing sessions into smaller tasks: I would take a day just to experiment and design bass sounds. When I got to a point that I didn’t know how to recreate a specific sound, I would seek out a tutorial and create my own variation on it. I would spend a day just creating build sections, and focus on how to create and release tension. I would watch a tutorial on creating a build and then make my own from scratch. I began to figure out how to piece together all of these smaller tasks, and over the course of a year, finally completed my first track that I was proud of.

The most important takeaway from this experience is that the process of making music taught me how to learn. This sort of “meta-cognition” is — quite arguably — one of the most important skills that you can master. You don’t just sit down one day and create a masterpiece: it’s a long process of learning how to do a lot of little things properly, all of which build on top of each other. Learning how to write code is the exact same process, I have discovered. It is a process of patience, consistency, and actually writing code.

When I recently decided to start learning to code again, I realized that I could transfer my knowledge from producing into programming. My experience made me realize that the most important thing to do was to learn in a structured way and to continually apply what I had just learned. After learning some HTML/CSS and JavaScript, I created this simple web app. I am finding this process to be efficient and enjoyable — instead of becoming frustrated, I have learned to relax and enjoy the ride. I know that if I continue to learn and build, I will eventually reach mastery. Knowing that gives me comfort and the will to keep on keeping on — and I hope that it helps you, too.

下载开源日报APP:https://openingsource.org/2579/
加入我们:https://openingsource.org/about/join/
关注我们:https://openingsource.org/about/love/