คลังเก็บป้ายกำกับ: Programming

ไมโครซอฟท์ปล่อย TypeScript 5.0 Beta รองรับ Decorators เต็มตัว ทำงานเร็วขึ้น

ไมโครซอฟท์ปล่อย TypeScript 5.0 ตัวทดสอบแรก ความเปลี่ยนแปลงที่เห็นได้ชัดคือการทำงานเร็วขึ้น และโค้ดที่ได้มีขนาดเล็กลงมาก และในเวอร์ชั่นหลักนี้ยังถอด flag ต่างๆ ที่มีการใช้งานน้อยๆ ออกไป

ฟีเจอร์สำคัญคือ Decorators ที่ ECMAScript กำลังจะรองรับเช่นกัน แม้ว่าก่อนหน้านี้ TypeScript จะมี Decorators อยู่ก่อนแล้ว แต่เป็นฟีเจอร์ระดับทดลองเท่านั้นและผู้ใช้ต้องเปิด flag --experimentalDecorators เอง การทำงานของเวอร์ชั่นทดลองกับเวอร์ชั่นมาตรฐานนี้ทำงานไม่เหมือนกัน

การทำงานโดยรวมเร็วขึ้น tsc ใช้เวลาเริ่มต้นเหลือ 89% ของเวอร์ชั่นก่อนหน้านี้ ระยะเวลา build ใช้เวลา 86% และแพ็กเกจรวมมีขนาดเหลือเพียง 58% เทียบกับ TypeScript 4.9

ฟีเจอร์บางตัวถูกถอดออก แต่คอนฟิกหลายตัวจะรันได้ต่อไปเพียงแค่ขึ้นคำเตือนว่าจะถอดจริงใน TypeScript 5.5

ที่มา – Microsoft

alt="carbon.png"

from:https://www.blognone.com/node/132408

Replit บริการ IDE ออนไลน์ เพิ่มฐานข้อมูล PostgreSQL คิดค่าใช้วันละ 1 ดอลลาร์

Replit บริการ IDE สำหรับพัฒนาเว็บบนเว็บ ประกาศร่วมมือกับ Neon ผู้ให้บริการ PostgreSQL แบบ Serverless ทำให้นักพัฒนาสามารถสร้างฐานข้อมูลออนไลน์ไปด้วย เปิดทางพัฒนาเว็บเต็มรูปแบบบน Replit

ตัวเซิร์ฟเวอร์มีขนาดเดียวคือแรม 4GB และสตอเรจ 10GB คิดค่าใช้งาน 100 Cycle ต่อวัน หรือวันละ 1 ดอลลาร์ เทียบกับค่าบริการอื่นๆ เช่น การพัฒนาโครงการแบบเป็นส่วนตัวเดือนละ 500 Cycle, ค่ารันเซิร์ฟเวอร์ต่อเนื่องวันละ 20 Cycle, เซิร์ฟเวอร์แรงพิเศษวันละ 350 Cycle หรือค่าปัญญาประดิษฐ์ช่วยเขียนโค้ด 1,000 Cycle ต่อเดือน

ตอนนี้บริการยังอยู่ในช่วงเริ่มต้น ทาง Replit ระบุว่าฐานข้อมูลจะปิดเองหากไม่ได้ใช้งานนาน 5 นาที และเปิดกลับมาในเวลาไม่กี่วินาที ในอนาคตจะเพิ่มเซิร์ฟเวอร์ขนาดใหญ่ให้ใช้งานด้วย

ที่มา – Replit

No Description

from:https://www.blognone.com/node/132385

Apple ปล่อยซอร์สโค้ด Apple Lisa คอมพิวเตอร์ที่ตั้งชื่อตามลูกสาวสตีฟ จ็อบส์

แอปเปิลปล่อยซอร์สโค้ดเครื่อง Apple Lisa ในโอกาสครบรอบ 40 ปีที่คอมพิวเตอร์รุ่นนี้เปิดตัว (19 มกราคม 1983) นับเป็นคอมพิวเตอร์ระดับสูงที่ใช้หน้าจอกราฟิกที่ได้แนวคิดจาก Xerox PARC

Lisa นับเป็นโปรเจคที่จ็อบส์ฟูมฟักโดยตรงตั้งแต่แรก ทีมงานสร้างภาษาใหม่เพื่อทำงานกับ GUI จนกลายเป็น Object Pascal และฮาร์ดแวร์มีประสิทธิภาพสูง พร้อมกับฮาร์ดดิสก์ในตัว ราคาเปิดตัววันแรกของ Lisa อยู่ที่ 9,995 ดอลลาร์ แม้ว่าจะถูกกว่าคอมพิวเตอร์ของ PARC เองอยู่มาก แต่ก็แพงกว่าพีซีหลายเท่าตัว แถมการใช้งาน GUI ในสมัยนั้นก็ยังทำงานได้ช้ามาก

แอปเปิลพัฒนาทั้ง Lisa และ Macintosh แข่งกันเองอยู่พักใหญ่ แต่ Macintosh นั้นสเปคต่ำกว่าและราคาถูกกว่ามากทำให้กลายเป็นสินค้าสำคัญของแอปเปิลในที่สุด

ซอร์สโค้ดของ Lisa ดาวน์โหลดได้ผ่าน Computer History Museum แม้จะเปิดให้ศึกษาได้แต่ก็ยังเป็นลิขสิทธิ์ของแอปเปิล และห้ามใช้งานเพื่อการค้า

ที่มา – Computer History Museum

No Description

Topics: 

from:https://www.blognone.com/node/132323

เบราว์เซอร์ Chrome เริ่มรองรับภาษา Rust เริ่มต้นจากใช้เป็นไลบรารีก่อน

โครงการ Chromium ที่เป็นโครงการต้นน้ำของเบราว์เซอร์ Chrome ประกาศเริ่มรองรับไลบรารีภาษา Rust เป็นจุดเริ่มต้นของการใช้ภาษา Rust เพื่อเพิ่มความปลอดภัยให้ซอฟต์แวร์โดยรวม

การใช้งานช่วงแรกจะเป็นการใช้งานทางเดียว นั่นคือตัวโค้ด Chromium หลักที่เป็น C++ จะเรียกไลบรารีที่เป็นภาษา Rust ได้แต่ไลบรารีเหล่านั้นห้ามเรียกโค้ด C++ อื่นอีก และโค้ด Rust ที่ใช้งานจะเป็นส่วนประกอบที่แยกเฉพาะทาง (standalone components) เท่านั้น ไม่ใช่ส่วนที่เป็นแกนหลักของตัวเบราว์เซอร์ โดยทั่วไปไลบรารีเหล่านี้มักรับผิดชอบงานเฉพาะทางเท่านั้น

การใช้งานโค้ด Rust มากกว่านี้จะต้องมีการปรับโครงสร้างค่อนข้างมาก เพราะภาษา Rust สามารถจัดการหน่วยความจำโดยไม่ต้องการ garbage collector ได้เพราะแนวคิดสองอย่าง อื่น อายุของตัวแปร (lifetime) และความเป็นเจ้าของ (exclusive mutability) แต่ในโครงสร้างของเบราว์เซอร์ Chrome นั้นมี pointer ที่ชี้ไปยังออปเจกต์เดียวกันหลายจุดและแก้ไขข้อมูลได้จากหลายส่วนพันกันไปมา การปรับโครงสร้างโค้ด C++ ให้ทำงานเข้ากับภาษา Rust ได้จึงเป็นการปรับโครงสร้างขนานใหญ่  ตอนนี้เองกูเกิลก็ลงทุนพัฒนาโครงการอย่าง Crubit ที่เชื่อมภาษา C++ เข้ากับ Rust ได้สองทางอยู่ แต่ก็ยังเป็นโครงการระดับทดลองเท่านั้น

ที่มา – Google Security Blog

Topics: 

from:https://www.blognone.com/node/132257

Ruby ออกเวอร์ชั่น 3.2.0 เริ่มรองรับ WebAssembly และ YJIT บน production

เมื่อวันที่ 25 ธันวาคม 2565 กลุ่มผู้พัฒนาได้ประกาศปล่อยภาษา Ruby เวอร์ชั่น 3.2.0 ตามธรรมเนียมของชุมชนผู้พัฒนาที่จะออกอัพเดตใหญ่ทุกวันคริสต์มาส

ไฮไลท์ของการอัพเดตครั้งนี้อยู่ที่การเริ่มรองรับการพอร์ตไป WebAssembly ผ่าน WebAssembly System Interface (WASI) ซึ่งจะทำให้โค้ดของ CRuby (ภาษา Ruby ที่ใช้ C เป็น interpreter) สามารถเรียกใช้งานได้บนเว็บเบราเซอร์หรือบนแพลตฟอร์มที่รองรับ WebAssembly และประกาศให้ YJIT ที่เป็น JIT(Just-In-Time) compiler ใหม่ให้อยู่ในสถานะพร้อมใช้บน production จากเดิมที่อยู่ในสถานะ experimental

โครงการ YJIT ถูกริเริ่มที่ Shopify เพื่อปรับปรุงประสิทธิภาพของ process ของ Ruby on Rails โดยภายในมีการใช้ Rust มาปรับปรุงประสิทธิภาพทำให้จำเป็นต้องมีรันไทม์ของภาษา Rust ควบคู่กับ Ruby ในเครื่องเดียวกัน

ที่มา: Ruby 3.2.0 release, YJIT

No Description

from:https://www.blognone.com/node/132029

PHP 8.2 ออกแล้ว

สัปดาห์ที่ผ่านมา PHP ออกเวอร์ชัน 8.2 ตามนโยบายการออกรุ่นใหญ่ปีละ 1 รุ่น ของใหม่ที่สำคัญในระดับของภาษาได้แก่

  • readonly class เป็นการใส่ readonly modifier เพื่อป้องกันการสร้าง dynamic properties ให้คลาสนั้น
  • กำหนดตัวแปร stand-alone เป็น null, false, true ได้แล้ว
  • เพิ่มส่วนขยาย Random Number Generators ตัวใหม่
  • ประกาศเลิกใช้ (deprecated) การทำ dynamic properties

ฟีเจอร์ทั้งหมดดูได้จาก PHP 8.2

การที่ PHP 7.4 เพิ่งหมดระยะซัพพอร์ตไปเมื่อเดือนที่แล้ว ทำให้ตอนนี้ PHP รุ่นที่ยังอยู่ในระยะซัพพอร์ตมีเฉพาะสาย 8.x เท่านั้น ได้แก่ 8.0, 8.1 และ 8.2 ซึ่งจะหมดระยะซัพพอร์ตปลายปี 2023, 2024, 2025 ตามลำดับ

ที่มา – PHP

No Description

from:https://www.blognone.com/node/131866

อันดับภาษาโปรแกรม TIOBE ธ.ค. 2022 Java หลุด Top 3 เป็นครั้งแรก โดน C++ แซง

รายงานดัชนีความนิยมภาษาโปรแกรม TIOBE Index ประจำเดือนธันวาคม 2022 เกิดความเปลี่ยนแปลงที่น่าสนใจ หลัง Java ความนิยมตกลงไปอยู่อันดับสี่ และ C++ แซงขึ้นมาเป็นอันดับสาม ถือเป็นครั้งแรกในประวัติศาสตร์ TIOBE ที่เริ่มตั้งแต่ปี 2001 ที่ C++ ได้รับความนิยมสูงกว่า Java และถือเป็นครั้งแรกที่ Java หลุด Top 3

แชมป์ยังเป็นของ Python ที่แซงหน้า C ขึ้นมาเป็นอันดับหนึ่งเมื่อปีที่แล้ว ส่วนการเปลี่ยนแปลงอื่นๆ ที่น่าสนใจในรอบเดือนนี้คือ SQL แซง Assembly ขึ้นมาอยู่อันดับ 8, ภาษา Go ไต่จากอันดับ 19 ขึ้นมาอยู่อันดับ 12, ภาษา Swift ร่วงจากอันดับ 10 ลงมาอยู่อันดับ 15

Top 10 ภาษายอดนิยมของ TIOBE

  1. Python
  2. C
  3. C++
  4. Java
  5. C#
  6. Visual Basic
  7. JavaScript
  8. SQL
  9. Assembly
  10. PHP

No Description

ที่มา – TIOBE via Infoworld

from:https://www.blognone.com/node/131763

AWS เปิดบริการ CodeCatalyst พัฒนาซอฟต์แวร์ครบกระบวนการในชุดเดียว

AWS เปิดบริการ CodeCatalyst บริการพัฒนาซอฟต์แวร์บรคลาวด์ที่เตรียมทั้งเครื่องสำหรับพัฒนา, IDE บนคลาวด์, บริการ CI/CD, ระบบจัดเก็บซอร์สโค้ด, และระบบจัดการบั๊ก (issue tracker) เข้าไว้ด้วยกัน

เซิร์ฟเวอร์สำหรับพัฒนาจะถูกกำหนดสเปคด้วย devfile ทำให้นักพัฒนาที่เปิดพื้นที่พัฒนา (Dev Environment) ขึ้นมาใช้งานก็สามารถเริ่มพัฒนาได้ทันที ส่วนตัว IDE นั้นจะใช้ AWS Cloud9 หรือจะใช้งานจาก IDE อื่นๆ ที่ AWS ซัพพอร์ตก็ได้เช่นกัน เช่น VS Code นั้นทาง AWS สามารถเชื่อมต่อกับ CodeCatalyst ผ่านทาง AWS Toolkit for VS Code

บริการ CodeCatalyst คิดค่าบริการ 4 ดอลลาร์ต่อคนต่อเดือน และมี Free Tier ให้ใช้งานฟรี 2,000 นาทีต่อเดือน ด้วยเครื่องขนาดเล็ก 2 vCPU/ RAM 4GB พร้อมสตอเรจ 10GB และสตอเรจสำหรับ Dev Environment อีก 64GB โดยผู้ใช้เสียเงินจะสามารถเลือกเครื่องขนาดใหญ่และซื้อสตอเรจเพิ่มได้

ที่มา – AWS

No Description

Topics: 

from:https://www.blognone.com/node/131714

“ถ้าจบไม่ตรงสาย จะเป็น Developer ได้ยังไง” กับคุณลิ่ว วสันต์ ลิ่วลมไพศาล ผู้ร่วมก่อตั้ง Blognone

งานนักพัฒนาอย่าง Developer หรือ Software Engineer กำลังได้รับความนิยม เงินเดือนก็ค่อนข้างสูง แต่จบไม่ตรงสาย จะเปลี่ยนมาสายนี้ได้อย่างไร คำถามนี้น่ากลายเป็นหนึ่งคำถามยอดฮิตไปแล้วในปัจจุบัน

คุณลิ่ว วสันต์ ลิ่วลมไพศาล ผู้ร่วมก่อตั้ง Blognone และ CTO ของ MFEC บริษัทให้คำปรึกษา พัฒนาและวางระบบไอทีองค์กรชั้นนำของไทย ได้ให้คำแนะนำสำหรับผู้ที่ไม่ได้จบมาทางสาย Computer Science แต่มีความสนใจจะพัฒนาทักษะด้านโปรแกรมมิ่ง ไปจนถึงหางานด้านนี้อย่างจริงจัง

No Description

คิดว่าคนที่จบไม่ตรงสายและอยากเป็น Dev ควรจะเริ่มต้นยังไงดี?

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

อีกอย่างหนึ่งคือการลองลงคอร์สเรียนระยะสั้นหรือคลิปวิดีโอ Tutorial ต่าง ๆ ใน YouTube ที่มีอยู่แล้วและฟรีค่อนข้างเยอะ หรือถ้าจะซื้อคอร์สเรียนที่ต้องเสียเงินก็หาได้ง่าย

ส่วนถ้าเราลองเรียนคอร์ส Basic Programming ซักคอร์สนึงไม่ยาวนัก ก็เป็นจุดเริ่มต้นอีกส่วนที่ดีและมีราคาไม่แพง ถ้ารู้สึกว่ายังไม่ใช่ ให้ลองถามตัวเองดูก่อนว่าเราอาจจะต้องการคอร์สที่มีคนช่วยแนะนำและสามารถถามตอบคำถามระหว่างทางหากเราติดปัญหา ซึ่งราคาอาจจะสูงหน่อยซักประมาณ 10,000-20,000 บาทหรือเรียน onsite ราว 50,000-100,000 บาท แต่การเรียนคอร์สแบบนี้ก็จำเป็นที่จะต้องคิดให้มากขึ้น

ก่อนฝึกโค้ดดิ้งหรือลงเรียนสักภาษา ควรทำความเข้าใจภาพรวมของการทำงานคอมพิวเตอร์ก่อนไหม เช่น ระบบ binary การคอมไพล์ต่างๆ เพื่อปูพื้นแบบ 0 ก่อนไป 1

อันนี้เป็นเรื่องที่เถียงกันยังไม่จบว่าเราควรให้คนเรียนแบบ top-down หรือ bottom-up กันดี มุมมองของคุณลิ่วคือไม่จำเป็นนัก เราสามารถสอนให้คนเข้าใจการควบคุมคอมพิวเตอร์ได้โดยคนควบคุมไม่ต้องเข้าใจคอมพิวเตอร์ไปทั้งหมดว่าภายในมันทำงานอย่างไร และความเข้าใจอย่างจำกัดก็สร้างมูลค่าได้แล้ว

No Description

เรื่องการคิด algorithm รู้สึกมันเหมือนการทำโจทย์เลขที่อาจต้องใช้ความคุ้นเคยและคลุกคลีกับมันบ่อยๆ ควรฝึกควบคู่ไปกับการเรียนภาษาโค้ดดิ้งแค่ไหน อย่างไร

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

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

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

No Description

กระบวนการเรียนรู้ควรเป็นยังไง? หรือจะเลือกคอร์สเรียนยังไงดี?

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

ส่วนเวลาที่เรามีคำถามและค้นหาใน Google โดยเฉพาะใน Stack Overflow ต้องระวังปัญหาอย่างนึงคือการสนใจแค่การหาคำตอบและ Copy & Paste คำสั่งมา แต่กลับไม่สามารถทำความเข้าใจว่าคำตอบที่คนมาตอบเขาเสนอแนวทางมาให้นั้นเขากำลังทำอะไร ทำให้หลายคนมองการเขียนโปรแกรมกลายเป็นการลองหาเฉลยมาลองไปเรื่อย ๆ จนกว่าจะได้ผลที่ต้องการ แต่กลับมองข้ามข้อสำคัญคือการ Copy & Paste คำตอบนั้นเราต้องการเรียนรู้จากประสบการณ์ของคนที่เคยเจอปัญหาเดียวกับเราว่าเขาแก้ปัญหาอย่างไรหากเราเข้าใจเราก็จะปรับเปลี่ยนได้เวลาที่เราเจอปัญหาใหม่ ๆ หรือได้โจทย์ใหม่ ๆ ซึ่งการประยุกต์ใช้เป็นเรื่องสำคัญเพราะงานโปรแกรมมิ่งถือว่าเป็นงานสร้างสรรค์

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

เลือกเรียนภาษาโปรแกรมมิ่งจากอะไร?

ภาษาที่เลือกเรียนจะเป็นตัวกำหนดว่าจะเจองานประเภทไหน เพราะฉะนั้นคนที่สนใจควรศึกษางานที่ต้องการทำก่อน แต่แนะนำว่าในช่วงแรก ควรเลือกเรียนแค่ภาษาใดภาษาหนึ่งก่อน

ภาษายุคใหม่ส่วนมากจะเป็น JavaScript และ TypeScript เพราะเป็นภาษาที่มีคนใช้เยอะและมักใช้กับการทำงานเป็น Full Stack Developer แต่งานจำนวนมากในโลกความเป็นจริงก็ยังใช้ภาษา PHP กันเยอะมากทั้งงานเว็บและอีคอมเมิร์ชทั้งหลาย ถ้าทำงานในระดับองค์กรก็ใช้ Java ส่วนด้าน Data หรือ AI นั้นก็แทบจะจำเป็นต้องเรียนภาษา Python ยืนพื้นไว้

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

หลังจากภาษาได้แล้ว เข้าใจ syntax แก้ปัญหาต่าง ๆ แล้ว ควรเรียนรู้อะไรต่อ เช่น เฟรมเวิร์ค ทูลส์ต่างๆ

โดยทั่วไปแล้วการทำงานมักจะไม่สามารถหยุดที่การเขียนโปรแกรมภาษาใดภาษาหนึ่ง ยกตัวอย่าง ถ้าคนอยากทำงาน Full Stack Developer เราอาจจะเขียน TypeScript ได้คล่องพอสมควรก็ต้องไปเรียน SQL ต่อ สำหรับเฟรมเวิร์คต่าง ๆ ถ้าตอนนี้เองที่ครองตลาดอยู่ก็คงเป็น React หรือ Vue ก็สามารถเลือกฝึกได้

สำหรับคนทำเว็บไซต์ เครื่องมือหนึ่งที่ควรฝึกให้คล่อง ๆ คือ Inspector Tools ในเบราว์เซอร์เราเอง เพื่อให้เราตอบคำถามได้ว่าเบราว์เซอร์เราส่งข้อมูลอะไรไปกลับเซิร์ฟเวอร์บ้าง

เครื่องมือที่ควรเรียนค่อนข้างแน่นอนทุกวันนี้ เช่น Git หรือ Docker/Docker-Compose ก็เป็นสิ่งที่ Developer หนีกันไม่พ้น

Soft Skills อะไรบ้างที่เป็นประโยชน์และคนจบไม่ตรงสายสามารถพัฒนาได้?

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

การฝึกสังเกตและความละเอียดก็เป็น Soft Skills อีกอย่างหนึ่ง อย่างถ้าเกิด error ขึ้น เราต้องดูสิ่งที่โชว์บนหน้าจอให้ละเอียดจะได้รายงานปัญหาได้ถูก และต้องรู้วิธีสื่อสารกับคอมพิวเตอร์ รู้ว่าเวลามีปัญหาแล้วเราต้องจัดการยังไง

No Description

คนที่จบไม่ตรงสายจะเตรียมความพร้อมยังไงให้เป็น Candidate ที่น่าสนใจพอ ๆ กับคนที่จบตรงสาย?

ถ้านับงานเฉพาะด้านแล้ว คนจบตรงสายไม่ได้ได้เปรียบขนาดนั้นเพราะเทคโนโลยีที่ใช้งานมักต้องการความเชี่ยวชาญกับเทคโนโลยีบางตัว เช่น React, NodeJS ที่ได้รับความนิยมทุกวันนี้ หรืองานจำนวนมากต้องการผู้ที่ปรับแต่ง WordPress ได้คล่อง ๆ ซึ่งไม่ใช้ความรู้ที่เรียนในมหาวิทยาลัยนัก แม้แต่มหาวิทยาลัยเองก็เริ่มปรับหลักสูตรมากขึ้น ช่วงหลังเราเริ่มเห็นวิชาที่สอนเนื้อหาตรงเพื่อใช้ในการทำงานเพิ่มขึ้นเรื่อย ๆ เช่น บางที่ก็มีวิชาที่สามารถนำไปใช้ทำงานเป็น Full Stack Developer ที่กำลังได้รับความนิยม โดยรวมก็เป็นคำถามว่าการออกแบบหลักสูตรระดับมหาวิทยาลัยควรจะมีวิชาพื้นฐานเยอะ ๆ หรือจะเน้นไปที่ทักษะที่ได้ใช้ในการทำงานโดยตรง

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

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

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

No Description

ปัญหาที่คนไม่ได้จบตรงสายอาจจะเจอมีอะไรบ้าง และจะแก้ได้ยังไง?

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

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

เป็นไปได้ไหมที่คนจบไม่ตรงสายจะเก่งเท่าหรือเก่งกว่าคนที่จบตรงสาย?

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

มองว่าอนาคตของสาย Developer จะเป็นอย่างไรบ้าง

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

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

ในช่วงนี้ก็เริ่มมีกระแส No Code/ Low Code เข้ามาด้วยที่ทำให้เราสามารถเขียนโค้ดจำนวนน้อย ๆ แบบเดียวกับการใช้ Excel แต่สร้างซอฟต์แวร์ที่มีความซับซ้อนมากขึ้น โดยที่ตำแหน่งของเขาอาจจะไม่ใช่ Developer โดยตรง

สำหรับ Developer แบบเต็มเวลาจริง ๆ ก็จะเจอกับความเปลี่ยนแปลงที่มากขึ้น เราอาจจะต้องเตรียมตัวว่าภาษาหรือเทคโนโลยีที่ได้รับความนิยมสูงอยู่ช่วงหนึ่งอาจจะเปลี่ยนไปภายในเวลาไม่กี่ปี แล้วเราก็ต้องเรียน stack ใหม่อีกครั้ง แต่ความเปลี่ยนแปลงแบบนี้ก็อาจจะไม่จริงกับทุกคนนัก ทุกวันนี้บริการจำนวนมากที่เราใช้งานกันก็ยังเป็นเทคโนโลยีเดิม ๆ ที่ใช้มาแล้วหลายสิบปี PHP ยังมีการใช้งานสูงมาก หรือฐานข้อมูลที่หลายคนอาจจะตื่นเต้นกับ NoSQL กันพักใหญ่แต่ความรู้ SQL ก็ยังใช้งานกันจนทุกวันนี้ และอาจจะได้ใช้มากขึ้นเรื่อยๆ อยู่ดี

คำแนะนำในการหางาน โปรโมทตัวเองลง Resume เช่น อัพผลโหลดงานลง Github ฯลฯ

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

เรื่องหนึ่งคือแพลตฟอร์มฝึกเขียนโปรแกรมอย่าง CodeWar หรืองานแข่งเขียนโปรแกรมอย่าง Google CodeJam ตลอดจนเว็บสอนเขียนโปรแกรม นั้นมักมี profile ของผู้ใช้เหมือนกัน เราสามารถใส่ข้อมูลพวกนี้เข้าไปเพื่อให้คนอ่านเห็นว่าเราเรียนอะไรมาแล้วบ้าง รูปแบบก็คล้ายๆ การแนบใบรับรองที่ได้จากการอบรม แต่คนอ่านจะเข้าไปดูโค้ดที่เราเคยเขียน หรือระดับคะแนนได้เลย

ใครที่มีประสบการณ์ด้านนี้หรือเป็น Developer / Engineer มานานแล้วมีคำแนะนำให้กับคนนอกสายที่สนใจ สามารถคอมเมนท์ไว้ได้เลยครับ

ส่วนใครที่สนใจหางานประจำด้านโปรแกรมมิ่งและด้านเทคโนโลยีอื่น ๆ เข้ามาดูงานได้เลยที่ Blognone Jobs

from:https://www.blognone.com/node/131603

โครงการ curl เริ่มรองรับใช้ภาษา C99 บางส่วน หลังอยู่กับ ANSI C มา 26 ปี

โครงการ curl ที่เป็นไลบรารีเชื่อมต่อเว็บยอดนิยมเป็นโครงการตั้งแต่ปี 1996 และพัฒนาด้วยภาษา C ตามมาตรฐาน ANSI C หรือ C89 มาโดยตลอดไม่ยอมปรับไปใช้มาตรฐานรุ่นใหม่ๆ แม้จะมีการปรับปรุงมาตรฐานมาแล้วหลายครั้ง ล่าสุดทางโครงการเตรียมยอมรับฟีเจอร์ของมาตรฐาน C99 หนึ่งจุด นั่นคือการสร้างตัวแปรแบบ 64 บิตที่ C89 ไม่รองรับโดยตรง

Daniel Stenberg ผู้ดูแลโครงการระบุว่าเป้าหมายของ curl คือการรองรับทุกแพลตฟอร์มไม่ว่าจะคอมไพล์ด้วยคอมไพลเลอร์อะไรบนระบบปฎิบัติการไหน ดังนั้นหากมีคอมไพลเลอร์ตัวไหนไม่รองรับฟีเจอร์ใหม่ๆ ของภาษาทางโครงการก็อยู่กับมาตรฐานเก่าไปก่อนดีกว่า และปัญหาของ curl คือ Visual C++ (MSVC) ของไมโครซอฟท์นั้นรองรับ C99 ช้ามาก เพิ่มรองรับจริงๆ ในปี 2015 และปรับปรุงการทำงานให้เข้ามาตรฐานในปี 2019 นักพัฒนาที่ใช้ MSVC จำนวนมากในทุกวันนี้ยังใช้เวอร์ชั่นเก่าอยู่จึงยังรองรับ C99 เต็มรูปแบบไม่ได้

C99 ปรับปรุงภาษา C เพิ่มฟีเจอร์ที่เราเห็นทุกวันจนชินตา เช่น การคอมเมนต์บรรทัดเดียวด้วย //, ตัวแปรแบบ boolean, ฟังก์ชั่น inline, ตัวแปรขยายยาว ในโครงการ curl 8 ที่จะออกปี 2023 จะยอมให้ใชงานเฉพาะตัวแปร 64 บิตเพราะเบราว์เซอร์ทุกตัวรองรับหมดแล้ว

ที่มา – haxx.se

Topics: 

from:https://www.blognone.com/node/131598