View
4.320
Download
2
Category
Preview:
Citation preview
ศุภเสฏฐ์ ชูชัยศรี
เรื่องที่ผมอยากย้อนกลับไปแนะแนวตัวเองสมัยเรียน
รู้สิ่งใดไม่สู้....รู้วิชางี้...
รู้จักกันก่อน
ศุภเสฏฐ์ ชูชัยศรี (ปิง)
ตรี-โท-เอก วิศวฯคอม จุฬา
Co-founder
• บจ. ลานเกียร์ เทคโนโลยี
• บจ. สตรีมมิ่ง
supasate.c@gmail.com
github.com/supasate
stackoverflow.com/users/491267/supasate
twitter: @kaizerwing
facebook.com/kaizerwing
วันนี้มาเล่าอะไร
• สายงานคนจบ Computer Science / Engineer
• สิ่งที่ควรรู้ในการทำงานสายพัฒนาซอฟต์แวร์
• Mindset
ขอถามก่อน
ใครอยากเรียนต่อ?
ใครอยากทำงาน?
ใครอยากเปิดบริษัท?
ใครอยากย้ายสาย?
สายงาน(บางที่อาจมองไม่เหมือนกัน)
Programmer
• เขียนโปรแกรม
• (อาจจะออกแบบไม่เป็น แต่เขียนโปรแกรมตามที่ออกแบบได้)
• (หรืออาจจะออกแบบเป็นก็ได้)
• ความหมายค่อนข้างกว้าง
Software Engineer
• ออกแบบและเขียนโปรแกรม
• วิเคราะห์หาสาเหตุของปัญหา
• แก้ปัญหาอย่างมีประสิทธิภาพ
• เลือกเทคโนโลยีที่เหมาะสม
(Web) Front-end Engineer
• เขียนฝั่ง Client
• HTML / CSS / JavaScript
• CSS Framework - Bootstrap, Foundation
• JavaScript Framework - jQuery, Angular, Backbone, Knockout, Ember, React, GWT
(Web) Back-end Engineer• เขียนฝั่ง Server
• Java / PHP / Node.js / .NET / Python / Ruby / Go
• Web Framework - Laravel, Ruby on Rails, Express
• Database - MySQL, Maria DB, MS SQL, Oracle, MongoDB, Redis, Cassandra, OrientDB
• Web Server - Apache, Nginx, IIS, Node.js
Fullstack Developer
• ทำได้ทั้ง Front-end และ Back-end
Tester / QA (Quality Assurance)
• ทดสอบระบบ
• ออกแบบ Unit Test / Functional Test / Regression Test / Acceptance Test
• เขียน script เพื่อทดสอบอัตโนมัติ
• (Test-Driven Development คนเขียน Test เป็น Software Engineer เลย)
System Administrator
• คอนฟิกและดูแลระบบ เซิร์ฟเวอร์ เครือข่ายเบื้องต้น
• ความปลอดภัยของระบบ
• เขียน script ทำงานอัตโนมัติ
• แก้ไขปัญหาให้ระบบกลับมาได้เร็วที่สุด
DevOps
https://en.wikipedia.org/wiki/DevOps
System Analyst (SA)
• วิเคราะห์และออกแบบระบบจากความต้องการทางธุรกิจ
• ออกแบบและตรวจสอบ การแปลงข้อมูลที่มีเข้าสู่ระบบ
• ออกแบบและตรวจสอบ ลำดับการทำงานของระบบ
• (อาจจะไม่ได้เขียนโปรแกรมโดยตรง)
• (แต่ควรเขียนโปรแกรมได้ดี)
System Programmer
• ออกแบบและเขียนโปรแกรมในระดับ low-level
• เช่น
• เขียน Driver
• เขียนโปรแกรมเชื่อมต่อ Network
• เขียน Firmware
https://github.com/docker/swarm/blob/master/MAINTAINERS
Embedded System Programmer
• เขียนโปรแกรมบนระบบฝังตัว / รถยนต์ / หุ่นยนต์ / IoT (Internet of Things) ฯลฯ
• รู้กลไกการทำงานของฮาร์ดแวร์
• เชื่อมต่อซอฟต์แวร์เข้ากับฮาร์ดแวร์
• ทรัพยากรจำกัด (CPU / Memory / Storage)
Drivebot.io
http://www.tesa.or.th/tesa/mod/forum/discuss.php?d=1076
Mobile App Developer (iOS / Android / Windows Phone)
• รองรับปัญหาหน้าจอหลายขนาด (Fragmentation Problem)
• เลือกพัฒนาแบบ Native หรือ Web อย่างเหมาะสม
• รู้จัก Life-Cycle ของ App ในแต่ละ OS และการจัดการ Memory
• การเรียกใช้งาน GPS / Sensors / Wi-Fi / อื่นๆ
GDE (Google Developer Expert)
Network Engineer
• ออกแบบการติดตั้งและขยายเครือข่าย
• คอนฟิก Router, Switch, Hub, Server, อุปกรณ์เครือข่ายแบบซับซ้อน
• เขียน Script เพื่อทำงานอัตโนมัติ
• งานบางส่วนอาจเหมือน Network Administrator
Network Administrator
• ติดตั้งและดูแลเครือข่าย
• เลือกใช้เครื่องมือในการติดตั้งและดูแล
• คอนฟิก Router, Switch, Hub, Server, อุปกรณ์เครือข่ายเบื้องต้น
• งานบางส่วนอาจเหมือน Network Engineer
https://en.wikipedia.org/wiki/Cisco_certifications
Database Administrator (DBA)
• ออกแบบและดูแลฐานข้อมูล
• ปรับปรุงประสิทธิภาพฐานข้อมูล
• วางแผน Backup & Restore
• ประสานกับนักพัฒนาโปรแกรมให้ใช้ข้อมูลได้มีประสิทธิภาพ
Security Specialist / Consultant
• ตรวจสอบหาช่องโหว่ของระบบ (Penetration Test)
• สร้าง PoC (Proof of Concept) ทดสอบช่องโหว่
• อุดรอยรั่ว (Hardening)
• ติดตามช่องโหว่ CVE (Common Vulnerabilities and Exposure)
UI (User Interface) / UX (User Experience) Designer
credit: http://blog.falkayn.com/
Game Developer / Designer
• ออกแบบวิธีการเล่นเกม จำลองฉาก
• เขียนโปรแกรมจำลอง Effect (มักใช้ความรู้ฟิสิกส์และคณิตศาสตร์)
• เขียน A.I. ฝั่งคอมพิวเตอร์
• เขียนระบบออนไลน์
https://www.youtube.com/watch?v=1xJOWXedK08
https://www.blognone.com/node/69237
https://www.blognone.com/node/70044
Technical Consultant
• วิเคราะห์ปัญหา
• นำเสนอทางแก้
• รู้ลึก รู้รอบ
• รู้ Business Domain
Computer Scientist / Researcher
• วิจัยพัฒนาสิ่งใหม่
• สร้างองค์ความรู้ใหม่
• ค้นคว้าหาวิธีการใหม่
คิดค้น TCP/IP Protocol“Father of the Internet”
ประดิษฐ์ World Wide Web
สร้างระบบปฏิบัติการ UNIXDennis Ritchie สร้างภาษา C
สร้างภาษา Ruby
MapReduce, BigTable, SpannerGoogle Brain, AdSense, Google Translate, etc.
Larry Page & Sergey Brin“Page Rank Algorithm”
Data Scientist
https://www.blognone.com/node/70257
มีอื่นๆอีกเพียบ
ตัวอย่างบริษัทในเมืองไทย
Big Name
Big Name (Thai)
เฉพาะทาง (การเงิน ประกันภัย)
Startup
อื่นๆ อีกมากมาย
สิ่งที่ควรรู้... ก่อนเข้าทำงานสายพัฒนาซอฟต์แวร์
รู้... จักใช้ Version Controlgit, svn
รู้...ความสวยของโค้ด
source: http://www.smashingmagazine.com/2008/11/12-principles-for-keeping-your-code-clean/
รู้...จักอ่าน Error Message
รู้...จักค้นคำตอบ
รู้...ทันเทคโนโลยี
รู้...จักฝึกอ่านโค้ดชาวบ้าน
github.comfork
รู้...จักเข้าร่วมงานต่างๆ
เครือข่ายโปรแกรมเมอร์ไทย และกลุ่มต่างๆCode Mania, โค้ดชิวๆ, JavaScript Day, PHP Meetup, Python Meetup, AWS Meetup, JavaBootcamp ฯลฯ
รู้...Data Structure & Algorithm
(ถ้าอยากทำงานบริษัทระดับโลก)
Google Code Jam Facebook Hacker Cup
Career Cup HackerRank
programming.in.th
รู้...ภาษาอังกฤษ
รู้....Soft Skill
ทำงานเป็นทีม
การสื่อสาร / นำเสนองาน
ต้ังคำถาม
ความเป็นผู้นำ
ความรับผิดชอบ
รู้...ตัวว่าชอบอะไรรู้...ตัวว่าไม่ชอบอะไร
เรียนต่อ ทำงาน
เปิดบริษัท ย้ายสาย
ตอบตัวเอง
“ทำไม”
“เพื่ออะไร”
Mindset
http://championshipbasketballschool.com/wp-content/uploads/2013/09/mindset-animation.png
คุยกันได้SUPASATE CHOOCHAISRI (Ping)
supasate.c@gmail.com
github.com/supasate
stackoverflow.com/users/491267/supasate
twitter: @kaizerwing
facebook.com/kaizerwing
จบแล้วคำถาม?
Recommended