開源日報 每天推薦一個 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/