แน่นอนว่าฉันเห็นด้วยกับแรงผลักดันหลักของคำตอบที่ยอมรับและเมื่อคุณโดยทั่วไปกำลังดำน้ำในสิ่งที่ใหญ่โตโดยให้ Erlang ลองฟังดูเหมือนว่าคุณน่าจะมีความเข้าใจที่ดีเกี่ยวกับวิธีการเรียนรู้และต้องการเขยิบขวา ทิศทางชัดเจนดังนั้นมันเป็นคำตอบที่ดีสำหรับคุณ ... แต่ฉันคิดว่าฉันจะเข้าหาคำถามที่แตกต่างกันเล็กน้อยเนื่องจากฉันเห็นว่าคำตอบนี้จะไม่ได้ช่วยฉันมากเลย ฉันมักจะเรียนรู้รหัส! ดังนั้นนี่คือความคิดของฉัน ...
(BTW ฉันมักจะไปในรายละเอียดเหมาะสำหรับพูดบทในหนังสือและฉันแน่ใจว่าฉันไม่สามารถยับยั้งสัญชาตญาณของฉันที่นี่อย่างสมบูรณ์แต่ฉันจะลองตะปูอื่น จะสรุปความคิดของฉันที่นี่และในกรณีที่มีคนต้องการรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งใดหรือคิดว่าบางสิ่งที่ฉันบอกว่าทำให้เข้าใจผิดในรูปแบบนี้ฉันจะพยายามอย่างดีที่สุดที่จะจำเตือนการตอบสนอง ... )
เพื่อพยายามทำให้ตัวเองทำงานต่อไปนี่คือความเข้าใจของฉันเกี่ยวกับคำถามที่ถูกถามใน OP; ฉันจะอธิบายให้น้อยที่สุดเท่าที่จำเป็นเพื่ออธิบาย ....
ก่อนอื่นคำตอบด่วน:
ฉันอยู่ในสถานการณ์ที่คล้ายคลึงกันไหม อย่างน้อยก็คล้ายกัน ฉันอยู่ในตำแหน่งผู้นำในการทำโปรเจ็กต์ที่หลากหลายซึ่งเกี่ยวข้องกับ ... (CRM / Web / DB / Data Integration / ฯลฯ )
ทำไมฉันถึงข้ามไปใช้งานได้? "ฉันเห็นตัวอย่างของ LINQ และถึงแม้ว่าฉันจะใฝ่ฝันถึงการเรียงลำดับแบบบูรณาการพิมพ์แบบคงที่ภาษาแบบสอบถาม [เนื่องจากฉันใช้ภาษาที่พิมพ์แบบคงที่ (โดยหลักแล้วคือ C ++ และ C # ภายหลัง )] ตลอดอาชีพของฉัน ... แต่มันเป็นสภาพแวดล้อมที่ค่อนข้างเร็วฉันอยู่ในไฟและถึงแม้ว่าฉันมักจะจัดการเพื่อดูสิ่งที่มาในอดีตที่ผ่านมาฉันไม่เคยคิดว่ามันผ่านจริง ๆ ดังนั้นฉันไม่เคยคาดคิดว่ามันจะ สามารถ / อนุญาตการดำเนินการกับ Plain Old Objects (lol!) ได้อย่างง่ายดายเช่นกันเมื่อฉันเห็นมันฉันรู้ว่าฉันต้องมี ... ดังนั้นนั่นคือสาเหตุและจุดเริ่มต้นของวิธี: ฉันมุ่งเน้นการเรียนรู้ที่จะเข้าใจ LINQ .
สี่ความคิด ... เอ่อใช่แล้วไม่ถูกต้อง ... คิดล่วงหน้า
เมื่อฉันอ่านคำตอบของ Martijn Verburgการกล่าวถึงฟังก์ชั่นทางธุรกิจทำให้ฉันนึกได้ทันทีว่าจะเริ่มใช้งานโค้ดสำหรับสิ่งที่ฉันกำลังทำ ... ขึ้นอยู่กับว่าการทดลองขั้นต้นตื้น ๆ นั้นฉันอาจตอบแตกต่างกันไป จุ่มนิ้วเท้าขนาดใหญ่ของคุณในฉันไม่แน่ใจว่าฉันมีอะไรสำหรับการทำงานโดยตรง (หรือเร็ว ๆ นี้จะเป็นงาน) ที่จะทำให้ฉันตื่นเต้น / ความหลงใหลฉันคิดว่าคุณควรจะมีปัญหาแรก ๆ ที่คุณเริ่มรับมือ ...
ฉันมีเหตุผลเกือบทั้งหมดในภาษาแบบคงที่ + อุปมาอุปมัย OOP และรูปแบบ + สิ่งที่ฉันจบลงด้วยการพันรอบสมองของฉันโดยไม่ตั้งใจในขณะที่แก้ปัญหาที่เกิดขึ้นจริงของฉันในช่วงหลายปีที่ผ่านมา ... ชี้ว่าถ้าคุณเป็นเช่นนั้น คุณน่าจะมีสมองจำนวนมากที่ทุ่มเทให้กับสิ่งที่ไม่ได้ช่วยอะไรคุณได้มากนักกับ LINQ / FP
ฉันคิดว่ามันเหมือนกับการเขียนโปรแกรมแบบขั้นตอนบริสุทธิ์กับ OO: มีหลายสิ่งที่คุณจะต้องใช้ใน OOP แต่ผู้ที่มาที่ C ++ จาก C โดยไม่ต้องให้ความสำคัญกับgrok / ken / "รับ" OO ท้ายที่สุดก็แย่มากที่ C ++ ที่จริงผมได้สัมภาษณ์นรกของจำนวนมาก (15+) ยาวเวลาเฟิร์มและนักพัฒนาโปรแกรมควบคุมอุปกรณ์ที่จริงๆคิดว่าพวกเขารู้ว่า C ++ แต่ที่ในที่สุดมี / ตำราพื้นฐานชะมัดการทำความเข้าใจของ C ++ มีจริงไม่มีการทำความเข้าใจหรือ ประสบการณ์ใน OOP - เพราะพวกเขาไม่เคยทำ OOP จริง ๆ ... พวกเขาเขียนคลาส multi-purpose เดียวกับสมาชิกแบบคงที่และฟังก์ชันแบบสแตติกที่มีคลาสแบบ non-static / non-singleton จำนวนหนึ่งที่ถูกใช้เป็น structs
และ FP ก็มีแนวคิดคล้าย ๆ กัน (สำหรับคนที่ไม่ได้อยู่ในกรอบความคิด) และสิ่งอื่น ๆ ที่สอดคล้องกับมันและ (แม้ว่าฉันได้พบการผสมผสานเทคนิคหลายอย่างที่เหมาะสำหรับฉัน) ฉันเข้าใจมากขึ้นและ มากขึ้นเมื่อเวลาผ่านไปความคิดของฉันถูก จำกัด ก่อนที่จะได้รับความสามารถในการทำงานจริงลงในชุดเครื่องมือ ในอดีตที่ผ่านมาฉันสามารถนำสิ่งต่าง ๆ ไปใช้ในทางที่สร้างสรรค์มากขึ้นซึ่งบางทีโปรแกรมเมอร์ OO ส่วนใหญ่ แต่เมื่อฉันใช้แนวคิดที่ว่าวิธีการคิดของฉันมีมาก่อน ... มีปัญหามากมายที่สามารถแก้ไขได้ ในไม่กี่บรรทัดที่เคยชินกับการทำมากมายใน C ++ / C #
ทันใดนั้นคุณก็พบว่าตัวเอง ...
ในโพสต์ "ยาวเกินไป"
คุณอยู่ในเขาวงกตแห่งความคดเคี้ยว "ไม่ได้อ่าน" เหมือนกันทั้งหมด
คุณจะเห็นการประชุมทางไกลในอนาคตอันใกล้กำลังจะมาถึงอย่างรวดเร็ว
> สั้น
Uhhuh แน่ใจ โอเคเราจะพูดว่าโหมด "terse" คือ "เปิด"
คุณจะเห็นการประชุมทางไกลในอนาคตอันใกล้กำลังจะมาถึงอย่างรวดเร็ว
> สิ่งที่ควรจะหมายถึงอะไร
เพียงแค่พูดใน เช้านี้คุณไม่ต้องทำอะไรเหรอ?
คุณจะเห็นการประชุมทางไกลในอนาคตอันใกล้กำลังจะมาถึงอย่างรวดเร็ว
> เฮ้นั่นมันน่ากลัวจริง ๆ ใช่ไหม
อะไร!? WHERE ?! [วิ่งออกไปกรีดร้อง]
> ขออภัยฉันไม่เข้าใจว่ามีอะไรที่ไหนที่ใช้ถ้อยคำใหม่?
[วิ่งต่อไปและส่งเสียงกรีดร้องไม่พูดเสียดสี]
ดังนั้น ... ฉันควรเรียนรู้อะไรที่รัก PSE สุดที่รัก PSE?
ฉันเริ่มด้วยตัวเองใน C # กับ LINQ มันอนุญาตให้ฉันแนะนำแนวคิดบางอย่างในเวลาเดียวกันและในขณะที่ฉันอ่านเกี่ยวกับ FP และแนวคิดของมันตลอดเวลาและ LINQ เพิ่มเติมและความสัมพันธ์ระหว่างทั้งสองมันทำให้ฉันมีหนทางข้างหน้าในขณะที่ยังทำงานสร้างสรรค์ ฉันเพิ่มบางสิ่งในเวลาการสืบค้นข้อมูลอย่างรวดเร็วกลายเป็นเครื่องมือที่มีประโยชน์สำหรับฉันโดยไม่ต้องเข้าใจอะไรเลย
ตอนนี้เมื่อมองย้อนกลับไปฉันหวังว่าฉันจะสามารถทำโครงการต่อไปของฉัน (จัดการเรื่องหนึ่งปีต่อมา) ก่อน; ฉันมีความคุ้นเคยในระดับปานกลางกับ F # (ซึ่งบังเอิญให้ฉันเริ่มต้นที่ดีในการเรียนรู้ML (metalanguage)และเป็นอนุพันธ์อื่น ๆ (เช่นOCamlเช่นกัน)
โดยทั่วไปฉันคิดว่าคำตอบที่ดีสำหรับ 'อะไร' ขึ้นอยู่กับการหาคู่ที่ดีของปัญหาการเขียนโปรแกรมบางอย่างที่คุณสนใจ แต่แน่นอนมันต้องจับคู่กับ FP เล็กน้อยที่คุณต้องการเรียนรู้ ... (และคุณสามารถล้าง / ทำซ้ำ / ฟองหลังจากเคาะบางสิ่งบางอย่างออกจากรายการ ... ) และแน่นอนคุณมักจะเรียนรู้เล็กน้อยมากกว่าสิ่งสำคัญที่คุณกำหนดไว้ให้ทำ ในตอนแรกฉันทำตามขั้นตอนทารก แต่แล้วฉันก็ลงเอยทำสิ่งที่ใหญ่กว่าและปล่อยให้สิ่งเล็ก ๆ เข้ามาในขณะที่ฉันทำสิ่งนั้น
ครั้งแรกสิ่งที่ลอยเรือของคุณ? โดยเฉพาะอย่างยิ่งในตอนแรกมันเป็นการดีที่สุดที่จะมีสิ่งที่สนุกและน่าตื่นเต้น (สำหรับคุณ) และนั่นจะทำให้คุณสนใจพอที่จะทำให้มันคุ้มค่า ดังนั้นฉันจึงมีปัญหาในการทำงานและเทคนิคต่าง ๆ ที่จัดการปัญหาเหล่านั้น ... LINQ และข้อมูลอินไลน์ทำการสอบถามฉันในตอนแรก การเรียกซ้ำเป็นอีกหนึ่งสำหรับฉันรวมถึงการเรียกซ้ำหางฉันขุด GodelEscherBach-ness ของมัน และฉันได้อ่านเกี่ยวกับการเรียกซ้ำหาง รอบคราวนี้สิ่งที่ฉันกำลังทำอยู่ถูกพักไว้และฉันก็จบลงด้วยการมีเวลามากดังนั้นฉันจึงสามารถเก็บมันไว้ได้นาน มันง่ายขึ้นด้วยการขัดจังหวะน้อยลง แต่เนื่องจากฉันเลือกสิ่งที่ฉันคิดว่ามันสนุกมันจึงไม่ใช่เรื่องยากเลยแม้แต่กับการหยุดชะงักของการทำงาน :)
และถึงแม้ว่าฉันจะไม่ได้คิดอะไรมากมาย แต่ฉันก็สามารถบอกคุณเกี่ยวกับโปรแกรมปูได้ด้วยตนเอง แต่ฉันก็สามารถทำได้ดี
และ ... ด้วยสิ่งที่ฉันจะเรียนรู้มันที่รัก PSE ที่รัก PSE ที่รักด้วยอะไร?
สำหรับเรื่องนี้ฉันใช้อัลกอริธึมต่าง ๆ ที่ฉันเพิ่งเกิดขึ้นสนใจรวมถึงสิ่งต่าง ๆ ที่ฉันสงสัยว่าคุณสามารถทำได้ใน F # และเมื่อฉันหมดความคิดฉันจะจัดการกับสิ่งต่าง ๆ เช่นเบียร์ 99 ขวดและProject Euler ปัญหา ...
ฉันแน่ใจว่าคุณสามารถพบสิ่งต่าง ๆ มากมายที่คุณสนใจซึ่ง FP เกี่ยวข้อง มันนำเสนอทุกอย่างตั้งแต่การปรับปรุงไปจนถึง OOP ที่ช่วยให้คุณพูดสั้นลงเรื่อย ๆ เพื่อบิดวิธีที่คุณคิดก่อนหน้านี้ให้กลายเป็นรูปร่างที่คุณจำไม่ได้และมีแนวโน้มที่จะไม่มีแบบจำลองทางจิต ก่อน.
แต่ ... มีรูอยู่ในแบบจำลองของฉันที่รัก PSE หนึ่งรู ...
และนี่คือเหตุผลว่าทำไมจึงเป็นสิ่งสำคัญที่โดยเฉพาะอย่างยิ่งในตอนเริ่มต้น แต่จริงๆแล้วการเรียนรู้ตลอดเวลาของคุณ (และมันไม่เป็นความจริงเสมอเมื่อคุณเรียนรู้อะไรบางอย่าง) อย่างน้อยคุณจะใช้เวลาสักครู่ระหว่างปัญหา ยัง FP และเวลาในการอ่านซอร์สโค้ดที่เขียนโดยผู้เชี่ยวชาญโดยเฉพาะอย่างยิ่งการแก้ปัญหาเดียวกันหรือคล้ายกัน; เช่นเดียวกับคำอธิบายของสิ่งต่าง ๆ ...
และในขณะที่คุณต้องฝึกสมองให้เข้าใจทั้งหมดไม่ใช่จากมุมมองเก่า ๆ แต่จากภายใน FP ตัวเอง ... ในบางจุดสำหรับฉันมันคลิกและ ... สิ่งที่ฉันสามารถเชื่อมโยงได้ดีที่สุด จะกลายเป็นภาษาดัตช์มากขึ้นหรือน้อยลง -; ในบางจุดฉันพยายามทำให้ตัวเองมีความคิด (ฉันทำผ่านการแช่ซึ่งโดยทั่วไปแล้วฉันได้อธิบายไว้ที่นี่; การดื่มด่ำกับตัวเองใน FP แทนที่จะพยายามเรียนรู้ผ่าน "book larnin" "...
และในที่สุดฉันก็ทำ; ฉันจัดการเพื่อทำให้ทุกอย่างเข้าที่และบิดสมองของฉันไปเรื่อย ๆ จนเริ่มโผล่ขึ้นมา FP / LINQ โดยที่ฉันไม่ต้องใช้ความพยายามในการแปลมันกลับไปเป็น OOP (ใช่ฉันทำอย่างนั้นฉันต้องมีอะไรบางอย่างเพื่อแขวนกระโปรงของฉันหมวกอะไรก็ได้)
ความคิดสุดท้าย...
ฉันดูเหมือนว่าคุณจะสูญเสียความสามารถในการคิดลายเซ็นที่ฉลาดของคุณ
ชื่อส่วน ช่างเป็นความอัปยศ
การประชุมทางไกลกำลังใกล้เข้ามาอย่างรวดเร็ว ตอนนี้ดูเหมือนจะใหญ่ขึ้นมาก
> ใช่แล้วก็ดี .. สั้นและทั้งหมด ฉันเห็นคุณจัดการเพื่อสูญเสีย grue ที่
ปิดการโทรที่ ... เอาละใช่ฉันเป็น ter ... โอ้ไม่กลับมาแล้ว!
AAAAAAAHHHHHH !! [วิ่งออกไปกรีดร้องอีกครั้ง]
การประชุมทางไกลกำลังใกล้เข้ามาอย่างรวดเร็ว
มันคล้ายกับ Sir Lancyjohn Cleezewiz
มันเกือบจะเป็นคุณ
> เฮ้รีบกลับมาแล้ว! ฉันมีการทดลองที่จะลองกับคุณ! (และ po-ta-to)
คุณสามารถค้นหาข้อมูลมากมายเกี่ยวกับ FP ได้ตามปกติ สิ่งสำคัญคือการเข้าใจแนวคิดพื้นฐานแล้วเรียนรู้ที่จะใช้พวกเขา ตัวอย่างเช่นเรียนรู้เกี่ยวกับความไม่สามารถเปลี่ยนแปลงได้และทำไมมันมีความสำคัญ / มีประโยชน์สำหรับ FP ฉันขอแนะนำให้เรียนรู้ทฤษฎีเล็ก ๆ น้อย ๆ เพื่อให้สอดคล้องกับทุกสิ่งเช่นวิธีที่ FP บริสุทธิ์สามารถตอบสนองต่อการพิสูจน์อย่างเป็นทางการได้มากขึ้น นี่คือแรงผลักดันที่อยู่เบื้องหลังต้นกำเนิดของ F # ML แน่นอนว่า YMMV คุณอาจเป็นคนที่เบื่อหน่ายในกรณีนี้ตัวอย่างมากมายการลองผิดลองถูกมากมายเพื่อดูว่าทำไมเทคนิคที่ใช้เป็นสิ่งที่พวกเขาจะช่วยให้คุณมี 'Aha!' หลอดไฟ
ดังนั้นฉันจะทิ้งมันไว้ตอนนี้ หวังว่านี้เป็นประโยชน์กับใครบางคน ฉันต้องการเรียนรู้สิ่งต่าง ๆ เพิ่มขึ้นเล็กน้อย แต่ฉันก็เสียเวลาไปชั่วขณะ ฉันหวังว่าจะหาเวลาที่จะกลับไปที่เร็ว ๆ นี้แม้ว่ามันจะเป็นสัปดาห์ที่ยาวนานสำหรับฉันดังนั้นอาจจะเป็นอย่างน้อยในช่วงสุดสัปดาห์
<3 "ขอแนะนำ GRUEBOL Stopgap จนกระทั่ง SnozzML เสร็จแล้วมันควรจะเร็ว ๆ นี้ฉันมีคณะกรรมการขนาดใหญ่ช่วยฉันในครั้งนี้" - Grace Hopperwit Egghead, คำพูดสุดท้าย , XX97 GUE <3