ทั้งหมดนี้อยู่ในรายละเอียด

เมื่อฉันเติบโตขึ้นในฐานะนักพัฒนา ฉันเริ่มเห็นการเขียนโปรแกรมมากกว่าที่เป็นอยู่จริงๆ โดยพื้นฐานแล้ว การเขียนโปรแกรมถือได้ว่าเป็นทักษะทางเทคนิคที่ทำหน้าที่เป็นยูทิลิตี้ในการสร้างโปรแกรมและซอฟต์แวร์เพื่อแก้ไขปัญหาในโลกแห่งความเป็นจริง แต่จริงๆ แล้วมันเป็นมากกว่านั้นมาก การเขียนโปรแกรมเป็นรูปแบบศิลปะ และเช่นเดียวกันกับงานศิลปะ ผลลัพธ์สุดท้ายของโค้ดทั้งหมดที่เขียนขึ้นไม่เพียงแต่ทำหน้าที่ในการเปลี่ยนแปลงชีวิตของผู้ชมที่โปรแกรมอยู่ตรงหน้าเท่านั้น แต่ยังรวมถึงชีวิตของผู้สร้างในรูปแบบที่ไม่คาดคิดอีกด้วย

ในขณะที่นึกถึงช่วงไม่กี่ปีที่ฉันเคยเป็นนักพัฒนา ฉันสังเกตเห็นว่าฉันไม่ได้ทำตามรูปแบบความคิดแบบเดิมอีกต่อไป ฉันจัดการกับปัญหาแตกต่างออกไป ฉันตอบสนองต่อความล้มเหลวแตกต่างออกไป ฉันคิดแตกต่างออกไปมาก ฉันรับรู้โลกแตกต่างออกไป การฝึกเขียนโปรแกรมอย่างสม่ำเสมอไม่เพียงแต่ช่วยเพิ่มทักษะทางเทคนิคของฉันเท่านั้น แต่ยังสอนฉันมากมายเกี่ยวกับชีวิตอีกด้วย

นี่คือบทเรียนที่ฉันได้เรียนรู้จากการเขียนโปรแกรม

วิธีคิด

ก่อนที่ฉันจะเริ่มเขียนโปรแกรม ฉันมองเห็นโลกด้วยความเข้าใจในระดับผิวเผิน ฉันไม่ได้มองลึกลงไปมากนักว่าสิ่งต่างๆ เป็นอย่างไร ฉันไม่ได้อ่านหนังสือ ฉันไม่อยากรู้

เมื่อดูที่โปรแกรม คุณสามารถแยกทุกอย่างออกเป็นส่วนประกอบที่เล็กลงเรื่อยๆ จนกระทั่งสิ่งที่คุณมีคือคลาส ฟังก์ชัน และตัวแปร เราสามารถเห็นได้อย่างโปร่งใสว่าสิ่งใดที่ทำให้โปรแกรมนี้ทำงานได้อย่างที่เป็นอยู่ สิ่งนี้บอกอะไรฉันเกี่ยวกับการทำงานของโลกได้บ้าง? โลกมีโครงสร้างอย่างไร?

ทุกสิ่งทุกอย่างสามารถแยกแยะได้

ทุกสิ่งสามารถแยกส่วนเป็นส่วนประกอบพื้นฐานได้ อะตอมและไอโซโทป โครงสร้างแห่งความเป็นจริงและโลกแห่งวัตถุ เช่นเดียวกับโค้ดที่ใช้ในการสร้างจักรวาลที่สวยงามที่เราสามารถสัมผัสได้ในวิดีโอเกม ทุกสิ่งในจักรวาลของเราทำงานในลักษณะเดียวกับรหัสทางชีววิทยา เคมี และฟิสิกส์ของจักรวาลของเราที่อนุญาต

ฉันเริ่มมีความอยากรู้อยากเห็นเกี่ยวกับโลกรอบตัวฉัน ทำให้ฉันมองรายละเอียดเล็กๆ น้อยๆ รอบตัวฉันให้ละเอียดมากขึ้น ฉันมารับรู้โลกด้วยแสงที่น่าหลงใหลมากขึ้น ฉันสามารถดูใบไม้ที่เรียบง่ายและจินตนาการว่าความซับซ้อนของกระบวนการของธรรมชาติได้นำใบไม้นี้เข้าสู่สภาวะที่ฉันกำลังดูอยู่ในช่วงเวลาเอกพจน์นั้นอย่างช้าๆ

สิ่งนี้ทำให้ฉันรู้ว่าโลกเป็นผลผลิตจากกระบวนการและระบบทีละขั้นตอนในลักษณะเดียวกับที่เราสร้างโปรแกรมขึ้นมา ตัวแปรตามตัวแปร ฟังก์ชั่นต่อฟังก์ชัน คลาสต่อคลาส และองค์ประกอบต่อองค์ประกอบ จนกระทั่งในที่สุดเราก็คิดได้อย่างเหนียวแน่น แอปพลิเคชั่นที่สมบูรณ์และใช้งานได้ สิ่งที่ถูกสร้างขึ้นจากความว่างเปล่าอย่างแท้จริง โปรแกรมที่เป็นไปตามกฎและกฎหมายที่เรากำหนดไว้

ทำไมการคิดแบบนี้จึงสำคัญ

เมื่อฉันเริ่มคิดแบบนี้ ฉันสังเกตเห็นว่าไม่มีสิ่งใดในชีวิตที่สามารถทำได้โดยไม่แยกเป้าหมายออกเป็นกระบวนการเฉพาะ ทุกสิ่งต้องมีขั้นตอนและการเติบโตที่เพิ่มขึ้น แทบจะไม่มีอะไรสำเร็จได้ในพริบตาเดียว ไม่ว่าจะเป็นธุรกิจ งานอดิเรกใหม่ ทักษะใหม่ หรือเป้าหมายใดๆ ก็ตามของคุณ มันต้องใช้เวลาและความอดทน

การตอบสนองต่อความล้มเหลว

ในฐานะโปรแกรมเมอร์ เราต้องรับมือกับความล้มเหลวจำนวนมหาศาลในแต่ละวัน บางท่านอาจจะคุ้นเคยกับกฎ 90-90 ของวิศวกรรมซอฟต์แวร์แล้ว หากไม่เป็นเช่นนั้น Tom Cargill จาก Bell Labs จะอธิบายได้อย่างสวยงาม:

“90 เปอร์เซ็นต์แรกของโค้ดคิดเป็น 90 เปอร์เซ็นต์แรกของเวลาในการพัฒนา โค้ดที่เหลืออีก 10 เปอร์เซ็นต์คิดเป็นอีก 90 เปอร์เซ็นต์ของเวลาในการพัฒนา”

โดยพื้นฐานแล้ว เวลาส่วนใหญ่ที่ใช้ในการเขียนโค้ดคือการใช้ไปกับการดีบักโค้ด จากข้อเท็จจริงนี้ สิ่งสำคัญคือต้องเข้าใจว่าไม่ใช่ทุกอย่างจะได้ผลในการลองครั้งแรกของเรา การดีบักเป็นเรื่องเกี่ยวกับความเข้าใจความล้มเหลวของเรา ค้นหาว่าอะไรเป็นสาเหตุของความล้มเหลวตั้งแต่แรก จากนั้นทำการปรับเปลี่ยนที่เหมาะสมเพื่อเอาชนะความล้มเหลวนั้น ล้าง ล้าง และทำซ้ำ สิ่งสำคัญคือเราจะไม่หยุดจนกว่าโค้ดที่เราเขียนจะเป็นไปตามที่เราตั้งใจไว้

การลองผิดลองถูกนำไปสู่ความสำเร็จในที่สุด

ลองนึกภาพว่าทุกครั้งที่เราพบข้อผิดพลาดหรือข้อบกพร่องในโปรแกรม เราก็ยอมแพ้ ไม่มีอะไรจะสำเร็จได้เลย ไม่มีอะไรจะถูกสร้างขึ้น หากสิ่งใดจะบรรลุผลได้ในโลกนี้ เราต้องเอาชนะความล้มเหลวที่อยู่ตรงหน้าเรา หากมีการดีบักอะไรสอนฉันก็คงจะเป็นเช่นนี้

ความล้มเหลวอาจทำให้หงุดหงิดได้ มันสามารถทำให้เรารู้สึกว่าเราไม่ได้ก้าวไปข้างหน้า อาจทำให้เรารู้สึกว่าเราไม่รู้จักพอ แต่นั่นคือประเด็น ความล้มเหลวควรเป็นแรงบันดาลใจให้เราเรียนรู้มากขึ้น คิดเกี่ยวกับแนวทางต่างๆ ที่เราสามารถทำได้ และใช้มุมมองที่แตกต่างออกไป มันทำให้เราเข้าใจปัญหาของเราถึงจุดที่เราจะไม่เจอมันอีก การลองผิดลองถูกในที่สุดจะผลักดันเราไปสู่ความก้าวหน้าและเป็นคนดีขึ้น ดังนั้นอย่ากลัวที่จะทดลองและกล้าตัดสินใจ

ฉันรู้ดีว่าเมื่อก่อนฉันไม่ประสบความสำเร็จในตอนแรก ฉันจะไม่ยอมให้สิ่งเหล่านั้นมาทำให้ฉันช้าลง ฉันจะพยายามต่อไปจนกว่าฉันจะมีเปอร์เซ็นต์ข้อผิดพลาดเล็กน้อยในการทำกิจกรรมนั้น นั่นคือสิ่งที่ทำให้ฉันได้เป็นนักกีฬาดิวิชั่น 1 นั่นคือสิ่งที่ทำให้ฉันได้รับการยอมรับอย่างสม่ำเสมอจากผลงานของฉันที่บริษัทปัจจุบันของฉัน เป็นสิ่งที่ทำให้ฉันสามารถแสดงคุณค่าสูงสุดให้กับคนรอบข้างได้ ดังนั้นคำแนะนำของฉันคืออย่าเลิกล้ม พยายามและอดทนต่อไป เรียนรู้จากความผิดพลาดของคุณ และใช้เหตุผลที่คุณเริ่มต้นตั้งแต่แรกเพื่อขับเคลื่อนคุณไปข้างหน้า

ความคิดสุดท้าย

มีสิ่งต่างๆ มากมายที่เราสามารถเรียนรู้ได้จากการกระทำง่ายๆ ที่เราทำและงานที่เราทำในแต่ละวัน คุณเพียงแค่ต้องมองให้ใกล้ขึ้นและสังเกตว่าคุณได้รับอะไรจากสิ่งที่อยู่ตรงหน้าคุณ และสิ่งนี้กำลังหล่อหลอมคุณในฐานะบุคคลอย่างไร มันจะช่วยให้คุณเห็นคุณค่าและวัตถุประสงค์ในงานของคุณมากขึ้นอย่างทวีคูณ

การเขียนโปรแกรมสอนฉันมากกว่าสองสิ่งนี้ แต่ความสามารถของเราในการเอาชนะความล้มเหลวและความสามารถในการคิดแตกต่างคือพลังวิเศษสองประการที่ฉันเชื่อว่าทุกคนจะได้รับประโยชน์อย่างแท้จริง