ภาษาแต่ละตัว เหมาะสมกับงานด้านไหนบ้างอ่าครับ
C, C++, C#, Java, Python, Ruby, Pearl
แล้วถ้าผมอยากจะฝึกเขียน ระหว่าง สี่ตัวนี้ "Java, Python, Ruby, Pearl" ผมควรฝึกตัวไหนดีอ่าครับ ที่มันจะสามารถนำไปใช้ได้กว้างขวาง(เหมาะกับทุกงาน)ในอนาคต
กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น
ตอบยากมาก คงไม่มีภาษาไหนเหมาะสำหรับทุกงานอย่างแท้จริง แทนที่จะฝึกที่ภาษาผมว่ามาเน้นที่หลักการดีกว่า
พวกอัลกอริทึม ผมว่าผมพอจะได้บ้างแล้วอ่าครับ แต่ผมเขียนไม่เป็นเลย ไม่รู้ทั้ง syntax ทั้งการ apply ก็เลยอยากจะเริ่มหัดเขียนให้เป็นซักตัวอ่าครับ เลยไม่รู้จะเริ่มอะไรดี (C เขียนได้ครับ) ระหว่างสี่ตัวที่ผมบอกไป Java, Python, Ruby, Pearl
เยี่ยมเลย งั้นเขียนทีเดียว 4 ภาษาเลยครับ
ถ้าต้องการฝึกหัดเพื่ออนาคต ผมแนะนำ java ก่อน จากนั้นก็เรียนรู้การใช้อัลกอริทึมหรือหลักการต่างๆใน java ให้คล่องตัวก่อน แล้วค่อยขยับไปภาษาอื่นๆ
ผมเชียร์ java ก่อนเหมือนกันครับ (c# ก็ดีนะ)
เขียนเพื่อเอา concept หลังจากเขียนไปซักพัก
จะไปเขียนภาษาอื่นก็ไม่ยากแล้ว
สำหรับผมนะถ้าจะเริ่มเลย เนี้ยก็ C,C++,Java อะไรก็ได้ ไม่แนะนำพวก Python หรือพวก dynamic language ไม่ใช่ว่ามันไม่ดีนะครับ แต่มันสบายเกิน พอกลับมาใช้ภาษาแนว static แล้วจะไม่อยากเขียน
ความแตกต่างงแต่ละภาษามีนิดหน่อย ถ้าสำหรับผมให้เลือกอีก ระหว่าง C กับ Java ก็เลือก Java ครับ.
เพราะ C มีการพัฒนามาอย่างยอดเยี่ยมทำให้มันมี่ทุกอย่างที่ทำให้เราสับสน เช่นพวก Pointer อะไรทั้งหลายซึ่งตัวภาษามันอาจมีลูกเล่นได้เยอะเกินไปในการเขียน.
ถ้าจะหัดเขียน Java น่าจะเป็นตัวเลือกที่ดีนะครับ เพราะรูปแบบของมันจำกัดให้เราทำผิดได้ยากพอสมควร.
ความคิดเห็นส่วนตัวนะ
ถ้าไม่คิดว่าตัวเองจะต้องยุ่งเกี่ยวกับอะไรที่มันถึงขั้นรื้อโครงสร้างหนักๆ หรือต้องถึงขั้น Invent อะไรขึ้นใหม่เลยเนี่ย
อยากแนะนำอะไรที่เป็น High Level มากๆ ไปเลย ส่วนจะเป็นตัวไหน ตรงนั้นเอาเข้าจริงอาจจะไม่สำคัญเท่าไหร่ เพราะโดยมากจะต่างกันเฉพาะคอนเซ็ป ซึ่งมันเป็นเรื่องที่น่าจะเข้าไปทำความเข้าใจได้ไม่ยากนัก เหมือนที่เค้ามักพูดกันว่า เขียน Python ได้ก็เหมือนเขียน Ruby ได้ไปแล้วครึ่งนึง (ในทำนองเดียวกันที่เขียน Ruby ได้ก็น่าจะเหมือนกับเขียน Python ได้แล้วครึ้งนึง แต่เงื่อนไขนี้ไม่น่าจะครอบคลุมไปถึง Perl...)
มีคนพยายามทำนายกระแสทิศทางโลกโปรแกรมมิ่งไว้ว่า น่าจะวิ่งเข้าหาอะไรที่เป็น SOP มากขึ้น
วิถีการแข่งขันจะเปลี่ยนไปที่ Innovation/Creativity มากกว่า
แต่แน่นอนว่า Hardcore Programmer ก็ยังคงต้องมี
เพราะงั้นควรเริ่มจากถามตัวเองว่าอยากเป็นอะไร??
หุหุ ขอบคุณมาก ๆ เลยครับสำหรับทุกท่านที่ได้ให้หลากหลายคำแนะนำ
ว่าแต่สำหรับของท่าน BleAm อ่าครับ ที่ว่า "วิถีการแข่งขันจะเปลี่ยนไปที่ Innovation/Creativity มากกว่า"
อันนี้คือ มันจะเป็นในทุก ๆ ภาษาเลยรึป่าวอ่าครับ แล้วอีกอย่างคือผมได้ลองถามอาจารย์มาบ้าง ซึ่งอาจารย์ผมบอกว่า เวลาอาจารย์เขียนโปรแกรมขึ้นมาหนึ่งตัว อาจารย์จะแอบใส่บั๊กบ้าง หรือว่า บางทีจะโยนค่าไปมาระหว่างตัวแปรเล่นบ้าง เพื่อให้คนที่มาใหม่(ซึ่งจะมาแทนที่ตำแหน่งของอาจารย์)สับสน (มัวแต่ไล่โยนค่าไปมา แต่ไม่ได้เกี่ยวกะโปรแกรม)และไม่สามารถที่จะแก้ไข หรือว่า ต่อเติมโปรแกรมได้ ทำให้ตัวของอาจารย์เองไม่ถูกไล่ออกจากงาน ถ้าเป็นแบบนี้จริงแล้ว ผมเลยไม่ค่อยแน่ใจว่าการทำ Innovative มันจะเวิร์ครึป่าวอ่าครับ(เพราะคน invent อาจไม่ต้องการให้ใครอ่านโปรแกรมเค้าเข้าใจ ทำให้การ modified โปรแกรมเป็นไปได้ยาก)
ปล.ผมยังใหม่อยู่นะครับ ถ้าผิดพลาดประการใดขออภัยล่วงหน้านะครับ (ขอคำชี้แนะด้วย อิอิ)
ปล2.บางท่านอาจจะอ่านไม่ค่อยรู้เรื่องนะครับ เพราะผมไม่ค่อยแน่ใจในความหมายของ innovation/creativity ซักเท่าไรอ่านะครับ มันหมายถึงการเอาโปรแกรมเก่ามาต่อเติม เสริมแต่งให้ดีกว่าเดิมรึป่าวครับ ผมเลยอาจจะเขียนสับสนบ้าง เหอๆ
ฟังดูน่าสยดสยองสำหรับการเขียนโค๊ดที่ดีและอ่านง่ายที่ใครๆ ก็ต้องการนะครับ
แอบใส่บั๊กเอย
โยนค่าไปมาเอย
เหมือนขัดขากันเองเลยนะครับ - -"
Ruby on new Rails(user) >.<
บอกตามตรง ถ้าผมเจอโค้ดที่มีการวางยาแบบจงใจแบบนั้น ผมไล่ออกทันทีไม่ต้องคิดมากเลยนะเนี่ย ถ้าไม่อยากโดนไล่ออกก็ควรจะเขียนดีๆ มากกว่านะ ยิ่งเขียนดียิ่งไม่อยากให้ออก
เรื่อง innovation/creativity นั่น ผมเดาว่าน่าจะเป็นประเด็นด้านไอเดียมากกว่านะครับ ลองนึกสภาพเขียนเว็บด้วย java แต่ดันใช้ jsp ล้วนๆ ไม่แตะ jsf/struts หรือเขียนเว็บด้วย ruby ล้วนๆ ไม่สน rails ไม่ใช่ว่าทำไม่ได้ แต่มันกินแรง กินเวลา ตอนนี้การเรียน syntax จึงด้อยความสำคัญไปมาก ต้องหันมาหัดใช้ framework ทั้งหลายมากขึ้นแทน
ผมไล่ออกเหมือนกันน่ะ แบบนี้
บักส่วนมากหากรู้อาการก็แก้ไม่ยากหรอกครับ หรือการโยนค่าไปมา หากใช้เครื่องมือพวก profile ต่าง ๆ สักพักก็หาเจอ สรุปคืออย่าทำอะไรที่มันหยาบช้าอย่างนั้นเลยครับ มันไม่มีประโยชน์ คนที่เสียก็มีแต่คนทำนั่นแหละครับ เพราะคนแก้ผมมองว่าแก้ไม่ยาก แต่หากถูกจับได้ว่า "จงใจ" ส่วนมากคงโดนไล่ออก อย่างที่คุณ sugree ว่ามา ที่ร้ายไปกว่านั้นคือ อาจเสียชื่อเสียง ไปสมัครงานที่ไหนไม่ได้ จะทำกิจการเองก็ไม่มีคนไว้ใจ
ผมสังเกตหลายเรื่องแล้วครับว่า คนไทยเราชอบสอนการรวยทางลัดกันบ่อย ๆ หรือทำอะไรที่ไม่ค่อยได้เงิน แล้วไม่อยากทำ มุมมองส่วนตัวของผมคือ หากมีความสามารถ และโอกาสที่ดี ทุกอย่างจะตามมาเอง สิ่งที่เราควรขวนขวายอย่างเดียวคือ โอกาส การรวยลัดไม่ว่าด้วยวิธีไหนก็ตาม มันอยู่ได้ไม่นานหรอกครับ
แอบใส่บั๊กเลยเหรอ อืม ๆ ฟังดูอำมหิตไปหน่อยนะ ในชีวิตการทำงานของคนเรา น่าที่จะเดินไปในทิศทางที่ถูกต้อง อย่าทำบาปให้คนข้างหลังเลยครับ
ส่วนตัวชอบภาษา Java นะ ภาษามันบังคับให้เราเขียนโค้ดที่สะอาดอยู่พอสมควร และเหมาะกับการทำงานขนาดใหญ่ ๆ แต่สิ่งสำคัญคือการออกแบบโปรแกรมก่อนเขียนครับ ถ้าภาษาดีแต่เขียนไม่ดี ยังไง ๆ ก็ไม่ได้ซอฟแวร์ที่ดีมีคุณภาพครับ
ถ้างั้นผมขอศึกษา Java ก่อนละกัน เหอๆ แล้วจากนั้นค่อยไป Python/Ruby/Pearl << เพราะจากดูแล้ว syntax และรูปแบบการเขียนภาษาคล้ายกัน น่าจะประยุกต์ใช้ด้วยกันไม่ยากนัก (รึป่าว-*-)
ตัวผมเองก็คงจะไม่คิดที่จะ invent ขึ้นมาใหม่อ่าครับ เพราะลองดูแล้วโหดพอดูเลย เลยจะขอศึกษาเอาไว้ใช้ modify อย่างที่คุณ BleAm ได้บอกเอาไว้ละกัน หุหุ ขอบคุณมากๆครับ ทุก ๆ ท่านเลย (ซึ่งถ้าเกิดผมไปเจอกับ ความอำมหิตในโปรแกรม o.O ก็คงไม่ทำต่อละครับ ขอยอมแพ้ละกัน เหอๆ)>
อาจารย์จะแอบใส่บั๊กบ้าง หรือว่า บางทีจะโยนค่าไปมาระหว่างตัวแปรเล่นบ้าง เพื่อให้คนที่มาใหม่(ซึ่งจะมาแทนที่ตำแหน่งของอาจารย์)สับสน (มัวแต่ไล่โยนค่าไปมา แต่ไม่ได้เกี่ยวกะโปรแกรม)และไม่สามารถที่จะแก้ไข หรือว่า ต่อเติมโปรแกรมได้ ทำให้ตัวของอาจารย์เองไม่ถูกไล่ออกจากงาน
---> ทำไมใจร้ายแบบนี้เนี่ย ผมเรียกว่า ไร้ ethic จะมีใครว่าไรมั้ยครับ >_<
เขียน Java ก่อนก็ดีครับ ทั้ง Tools ทั้งอะไรต่อมิอะไร มีเยอะ... ฟรีๆ ทั้งนั้น