diff --git a/.vitepress/config.mts b/.vitepress/config.mts index 179286d..7f8610e 100644 --- a/.vitepress/config.mts +++ b/.vitepress/config.mts @@ -2,7 +2,7 @@ import { defineConfig, type DefaultTheme } from 'vitepress' // https://vitepress.dev/reference/site-config export default defineConfig({ - title: "TPA Paths", + title: "Thai Programmer Paths", description: "Paths of Thai Programmer", themeConfig: { logo: 'https://res.cloudinary.com/dqizuot8q/image/upload/v1719638409/logo_c9ju7d.svg', @@ -17,6 +17,8 @@ export default defineConfig({ '/paths/java': { base: '/paths/java/', items: sidebarJava()}, '/paths/azure': { base: '/paths/azure/', items: sidebarAzure()}, '/paths/cloud-computing': { base: '/paths/cloud-computing/', items: sidebarCloudComputing()}, + '/paths/web-guideline': { base: '/paths/web-guideline/', items: sidebarWebGuideline()}, + '/paths/sourcecodecontrol': { base: '/paths/sourcecodecontrol/', items: sidebarSourceCodeControl()}, }, socialLinks: [ { icon: 'github', link: 'https://github.com/ThaiProgrammer/tpa-path' } @@ -176,4 +178,110 @@ function sidebarCloudComputing(): DefaultTheme.SidebarItem[] { ] } ] +} +function sidebarWebGuideline(): DefaultTheme.SidebarItem[] { + return [ + { + text: 'Web Development Guideline', + items: [ + { + text: 'Introduction', + collapsed: true, + base: '/paths/web-guideline/intro/', + items: [ + { text: 'ทำเว็บต้องรู้อะไรบ้าง', link: 'intro' }, + { text: 'ภาษาอังกฤษ', link: 'english' }, + { text: 'เตรียมเครื่องให้พร้อม', link: 'setupgear' }, + { text: 'Learning Path', link: 'learningpath' }, + { text: 'Software Engineer', link: 'softwareengineer' }, + { text: 'Salary Report', link: 'devreport' }, + { text: 'พิมพ์สัมผัส', link: 'typing' }, + { text: 'Problem Solving', link: 'problemsolving' }, + { text: 'Soft Skills', link: 'softskill' }, + ] + }, + { + text: 'Front End', + collapsed: true, + base: '/paths/web-guideline/frontend/', + items: [ + { text: 'Front End', link: 'frontend' }, + ] + }, + { + text: 'Backend End', + collapsed: true, + base: '/paths/web-guideline/backend/', + items: [ + { text: 'Back End', link: 'backend' }, + ] + }, + { + text: 'Database', + collapsed: true, + base: '/paths/web-guideline/database/', + items: [ + { text: 'Database', link: 'database' }, + ] + }, + { + text: 'Source Code Control', + collapsed: true, + base: '/paths/web-guideline/scm/', + items: [ + { text: 'Source Code Control', link: 'scm' }, + ] + }, + { + text: 'Deployment', + collapsed: true, + base: '/paths/web-guideline/deployment/', + items: [ + { text: 'Deployment', link: 'deployment' }, + ] + }, + { + text: 'Cloud Computing', + collapsed: true, + base: '/paths/web-guideline/cloudcomputing/', + items: [ + { text: 'Cloud Computing', link: 'cloudcomputing' }, + ] + }, + { + text: 'SSH', + collapsed: true, + base: '/paths/web-guideline/ssh/', + items: [ + { text: 'SSH', link: 'ssh' }, + ] + }, + { + text: 'Community', + collapsed: true, + base: '/paths/web-guideline/community/', + items: [ + { text: 'Community', link: 'community' }, + ] + } + ] + } + ] +} +function sidebarSourceCodeControl(): DefaultTheme.SidebarItem[] { + return [ + { + text: 'Source Code Control', + items: [ + { + text: 'Source Control Management', + collapsed: true, + base: '/paths/sourcecodecontrol/scm/', + items: [ + { text: 'Source Control Management', link: 'scm' }, + ] + } + ] + } + ] } \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..44694bd --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,17 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "Install VitePress", + "type": "shell", + "command": "npm add -D vitepress" + }, + { + "label": "Run VitePress", + "type": "shell", + "command": "npm run docs:dev" + } + ] +} \ No newline at end of file diff --git a/contrib/contributing.md b/contrib/contributing.md new file mode 100644 index 0000000..0b34224 --- /dev/null +++ b/contrib/contributing.md @@ -0,0 +1,67 @@ +--- +outline: deep +title: 'Contribution to TPA Roadmaps' +description: Contribution to TPA Roadmaps +--- + +# Contribution to TPA Roadmaps +เราอยู่ในภารกิจที่จะทำให้ "TPA Roadmaps" เป็นแหล่งรวบรวมผู้ที่สนใจมาแบ่งปันเส้นทางการเรียนรู้และเส้นทางอาชีพในสายงานนักพัฒนา คิดซะว่ามันเป็นอีกหนึ่งเครื่องมือสำหรับร่วมเดินตามรอยประสบการณ์ของผู้ที่อยู่ในสายงานนี้ เป้าหมายที่ยิ่งใหญ่นี้จะเกิดขึ้นไม่ได้เลยถ้าเราขาดคุณ คนที่จะมาช่วยเราพัฒนาให้สังคมโปรแกรมเมอร์ไทยเติบโตยิ่งขึ้นไป! + +เราขอเชิญคุณเข้าร่วมกับชุมชนผู้ร่วมพัฒนาของเรา ทุกการมีส่วนร่วมมีความสำคัญและมีคุณค่าอย่างมาก ความพยายามของคุณช่วยสร้างประสบการณ์นักพัฒนาที่ยอดเยี่ยม การมีส่วนร่วมของคุณจะได้รับการยอมรับและขอบคุณเสมอ ❤️ + +มาเป็นส่วนหนึ่งของสิ่งที่ยิ่งใหญ่ และมาร่วมสร้างอนาคตของเส้นทางการเรียนรู้และเส้นทางอาชีพในสายงานนักพัฒนาไปด้วยกัน! + +หากคุณต้องการความช่วยเหลือ เพียงติดต่อเรามาผ่านทาง [Facebook](https://www.facebook.com/ThaiProgrammerSociety) สมาคม หรือ [Email](mailto:contact@thaiprogrammer.org) + +## Submitting a pull request +ในหนึ่ง PR ควรประกอบไปด้วย +- one feature +- fixed bugs +- refactor + +ดังนั้นผู้ตรวจสอบจะสามารถมุ่งเน้นไปที่รายการข้างต้นเท่านั้น ซึ่งจะทำให้ PR มีความง่ายในการตรวจสอบ + + +## Commit message +สำหรับข้อความ commit กรุณาใช้รูปแบบดังต่อไปนี้: [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#specification) + + +## Steps to contribute + + + +### 1. Create an Issue +[การสร้าง issue ใหม่](https://github.com/ThaiProgrammer/tpa-path/issues/new). กรุณาอธิบายรายละเอียดของสิ่งที่คุณต้องการทำ คุณสามารถดู [issues ของเราที่ผ่านมา](https://github.com/ThaiProgrammer/tpa-path/issues) ตัวอย่าง การสร้างปัญหาเป็นเรื่องง่าย ทำให้มันเรียบง่าย เมื่อคุณมีไอเดีย ให้สร้างมันขึ้นมา ไม่จำเป็นต้องสมบูรณ์แบบตั้งแต่เริ่ม (ลองพิมพ์ g i แล้วตามด้วย c บนคีย์บอร์ดของคุณ) + +### 2. Make a Discussion +สำหรับคุณ ทีมผู้ดูแล และสมาชิกท่านอื่นๆ มีโอกาสพูดคุยเกี่ยวกับหัวข้อของปัญหา: + +- พูดคุยเกี่ยวกับวิธีแก้ไขและทางเลือก ความคิดสองหัวดีกว่าหัวเดียว +- จากการพูดคุย เราอาจป้องกันงานที่ซ้ำซ้อนหรือไม่จำเป็น ซึ่งจะช่วยประหยัดเวลาของคุณในภายหลัง +- ถามคำถามใดๆ ที่คุณต้องการให้คนอื่นช่วย +- ให้คนอื่นทราบล่วงหน้าว่าคุณกำลังจะทำอะไร เป็นความคิดที่ดีเสมอ + +เมื่อทุกอย่างพร้อมแล้ว ให้ตั้งค่า `Assignees` ให้กับสมาชิกที่ต้องการทำงานในประเด็นนั้น ซึ่งอาจเป็นผู้สร้างประเด็นหรือใครก็ตาม และคุณสามารถลบป้าย `help wanted` ได้ หากมี + +> สองขั้นตอนแรกนี้ไม่จำเป็นในทุกกรณี แต่เราแนะนำให้ทำเพราะการร่วมมือกันมากขึ้นจะทำให้สิ่งต่างๆ ดีขึ้นและสนุกมากขึ้น ✨ + +### 3. Open a Pull Request + +- Fork repository นี้ไปยังบัญชี GitHub ของคุณเองแล้ว clone ไปยังเครื่องของคุณ +- สร้าง branch ใหม่ ตั้งชื่อให้เป็นสิ่งที่คุณจะเปลี่ยนแปลง/เพิ่ม โปรดใช้การตั้งชื่อแบบ `kebab-case` + ```sh + git checkout -b your-branch-name + ``` +- เริ่มงานของคุณ และ commit code +- Push การเปลี่ยนแปลงของคุณไปยัง origin ของคุณ + ```sh + git push origin -u your-branch-name + ``` +- สร้าง Pull Request (PR) ใหม่ โดยตั้งเป้าหมายไปที่ branch `develop` ของ `tpa-path` + +### 4. Review and Complete the Work +- รอการตรวจสอบ หากมีข้อเสนอแนะจาก pull request ให้ push commits เพิ่มเติมเพื่อแก้ไขงานของคุณ + ```sh + git push + ``` +- Pull request ต้องการการอนุมัติอย่างน้อยหนึ่งครั้งอย่างละเอียดก่อนที่ใครจะสามารถรวมเข้ากับ branch `main` ได้ จากนั้นจะทำการ deploy โดยอัตโนมัติไปยังเซิร์ฟเวอร์ diff --git a/index.md b/index.md index 55b8228..30e1cb5 100644 --- a/index.md +++ b/index.md @@ -8,6 +8,9 @@ hero: tagline: เส้นทางการเติบโตสำหรับโปรแกรมเมอร์ (Programmer Career Paths) actions: - theme: brand + text: Contribute + link: /contrib/contributing.md + - theme: alt text: Home link: / image: { @@ -20,6 +23,9 @@ features: - title: Web Development Guideline details: รวบรวมเนื้อหาที่คิดว่าเป็นประโยชน์ให้เห็นภาพกว้างในการเข้ามาทำงานในสาย Web Developers link: /paths/web-guideline + - title: Source Code Control + details: แนวทางการดูแลและควบคุม Source Code ที่เราทำงานกันเป็นทีมได้อย่างมีประสิทธิภาพครับ + link: /paths/sourcecodecontrol - title: ASP.Net Core details: ขั้นตอนแนะนำในการเตรียมความพร้อมเพื่อพัฒนา Website ด้วย ASP.NET Core ในปี 2024 link: /paths/aspnet-core diff --git a/paths/sourcecodecontrol/index.md b/paths/sourcecodecontrol/index.md new file mode 100644 index 0000000..a3c7278 --- /dev/null +++ b/paths/sourcecodecontrol/index.md @@ -0,0 +1,15 @@ +# Source Control Management + +Source Control Management (SCM) หรือที่เรียกกันว่า Version Control System (VCS) เป็นระบบที่ใช้ในการติดตามและจัดการการเปลี่ยนแปลงของซอฟต์แวร์หรือไฟล์เอกสารในโปรเจกต์หนึ่งๆ โดยมีวัตถุประสงค์หลักๆ ดังนี้: + +1. **การติดตามการเปลี่ยนแปลง**: SCM จะเก็บประวัติของการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับไฟล์ในโปรเจกต์ ตั้งแต่การเพิ่มไฟล์ใหม่ การแก้ไขไฟล์เดิม ไปจนถึงการลบไฟล์ ซึ่งจะช่วยให้เราสามารถดูได้ว่าใครทำการเปลี่ยนแปลงอะไร เมื่อไหร่ และทำไม + +2. **การจัดการเวอร์ชัน**: SCM สามารถจัดการหลายๆ เวอร์ชันของโปรเจกต์ได้อย่างมีประสิทธิภาพ โดยสามารถสร้าง branch หรือ fork เพื่อให้การพัฒนาสามารถทำได้พร้อมๆ กันโดยไม่กระทบกับเวอร์ชันหลักของโปรเจกต์ + +3. **การร่วมมือกันในทีม**: SCM ช่วยให้การทำงานร่วมกันในทีมเป็นไปได้อย่างราบรื่น ไม่ว่าจะเป็นการรวมการเปลี่ยนแปลงจากหลายๆ คนเข้าด้วยกัน (merge) หรือการแก้ไขความขัดแย้งที่เกิดขึ้นเมื่อมีการเปลี่ยนแปลงไฟล์เดียวกันพร้อมๆ กัน (conflict resolution) + +4. **การสำรองข้อมูลและการกู้คืน**: SCM ช่วยในการสำรองข้อมูลโดยอัตโนมัติ และสามารถย้อนกลับไปยังเวอร์ชันก่อนหน้าได้อย่างง่ายดายเมื่อเกิดข้อผิดพลาดหรือปัญหาในเวอร์ชันปัจจุบัน + +เครื่องมือ SCM ที่ได้รับความนิยมและใช้งานอย่างแพร่หลาย ได้แก่ Git, Subversion (SVN), Mercurial และ Perforce โดยเฉพาะ Git เป็นที่นิยมมากที่สุดในปัจจุบันเนื่องจากความยืดหยุ่นและความสามารถในการจัดการกับโปรเจกต์ขนาดใหญ่ได้อย่างมีประสิทธิภาพ + +หากคุณต้องการข้อมูลเพิ่มเติมหรือมีคำถามเกี่ยวกับเครื่องมือ SCM ใดๆ โปรดแจ้งให้ผมทราบครับ \ No newline at end of file diff --git a/paths/sourcecodecontrol/scm/scm.md b/paths/sourcecodecontrol/scm/scm.md new file mode 100644 index 0000000..a580cd0 --- /dev/null +++ b/paths/sourcecodecontrol/scm/scm.md @@ -0,0 +1 @@ +# Source Control Management \ No newline at end of file diff --git a/paths/web-guideline/backend/backend.md b/paths/web-guideline/backend/backend.md new file mode 100644 index 0000000..63d8931 --- /dev/null +++ b/paths/web-guideline/backend/backend.md @@ -0,0 +1 @@ +# Backend End Web Development \ No newline at end of file diff --git a/paths/web-guideline/cloudcomputing/cloudcomputing.md b/paths/web-guideline/cloudcomputing/cloudcomputing.md new file mode 100644 index 0000000..838d0e7 --- /dev/null +++ b/paths/web-guideline/cloudcomputing/cloudcomputing.md @@ -0,0 +1 @@ +# Cloud Computing \ No newline at end of file diff --git a/paths/web-guideline/community/community.md b/paths/web-guideline/community/community.md new file mode 100644 index 0000000..810d91c --- /dev/null +++ b/paths/web-guideline/community/community.md @@ -0,0 +1 @@ +# SSH \ No newline at end of file diff --git a/paths/web-guideline/database/database.md b/paths/web-guideline/database/database.md new file mode 100644 index 0000000..ff5dcc7 --- /dev/null +++ b/paths/web-guideline/database/database.md @@ -0,0 +1 @@ +# Database Development \ No newline at end of file diff --git a/paths/web-guideline/deployment/deployment.md b/paths/web-guideline/deployment/deployment.md new file mode 100644 index 0000000..7a9e3e0 --- /dev/null +++ b/paths/web-guideline/deployment/deployment.md @@ -0,0 +1 @@ +# Deployment \ No newline at end of file diff --git a/paths/web-guideline/frontend/frontend.md b/paths/web-guideline/frontend/frontend.md new file mode 100644 index 0000000..9133731 --- /dev/null +++ b/paths/web-guideline/frontend/frontend.md @@ -0,0 +1 @@ +# Front End Web Development \ No newline at end of file diff --git a/paths/web-guideline/index.md b/paths/web-guideline/index.md index a8ffddf..56e66a2 100644 --- a/paths/web-guideline/index.md +++ b/paths/web-guideline/index.md @@ -5,72 +5,9 @@ description: Guideline สำหรับแนะนำน้องๆนัก --- # Web Development Guideline -Guideline สำหรับแนะนำน้องๆนักศึกษาฝึกงานนะคร้าบ (จริงๆแอบมีแนะนำวิธีการทำงานและสายงาน Software Engineer ด้วยครับผม) +เนื้อหานี้จะเกี่ยวข้องกับการแนะนำภาพรวมในสายงานของ Web Development นะครับ +โดยจะแนะนำภาพรวมกว้างๆพร้อมตัวอย่าง ให้ผู้อ่านได้ศึกษาแบบเป็นลำดับขั้น -เนื้อหาที่เกี่ยวข้องคร่าวๆนะครับ +เนื้อหาในบทความจะมีการแนะนำไปยังหัวข้ออื่นๆที่อยู่ในเว็ปไซต์นี้ครับ รวมถึงแนะนำแหล่งเรียนรู้ภายนอก ทั้งภาษาไทยและภาษาอังกฤษด้วยครับ -## 1. Introduction to Web Development - -**1.1. What is Web Development?** - -- **Definition:** Web development คือ กระบวนการสร้างและดูแลเว็บไซต์หรือเว็บแอปพลิเคชัน -- **Types of Web Development:** - - **Front-end Development:** การพัฒนาในส่วนที่ผู้ใช้สามารถเห็นและโต้ตอบได้ - - **Back-end Development:** การพัฒนาส่วนที่ทำงานอยู่เบื้องหลัง - - **Full-stack Development:** การพัฒนาทั้ง front-end และ back-end - -**1.2. Key Concepts and Technologies** - -- **HTML (Hypertext Markup Language):** ภาษามาร์กอัปพื้นฐานสำหรับการสร้างหน้าเว็บ -- **CSS (Cascading Style Sheets):** ภาษาที่ใช้สำหรับจัดรูปแบบและสไตล์ของหน้าเว็บ -- **JavaScript:** ภาษาสคริปต์ที่ใช้สำหรับการเพิ่มฟังก์ชันการทำงานให้กับหน้าเว็บ -- **Frameworks and Libraries:** เช่น React, Angular, Vue.js สำหรับ front-end และ Node.js, Express สำหรับ back-end - -## 2. Setting Up Your Development Environment - -**2.1. Tools and Software** - -- **Code Editors:** เช่น Visual Studio Code, Sublime Text -- **Version Control Systems:** เช่น Git, GitHub -- **Package Managers:** เช่น npm, yarn - -**2.2. Setting Up a Local Development Server** - -- **Using Node.js:** การติดตั้งและใช้งาน Node.js สำหรับการรันเซิร์ฟเวอร์ -- **Localhost and Ports:** การตั้งค่า localhost และการใช้พอร์ต - -## 3. Building Your First Web Page - -**3.1. Creating an HTML File** - -- **Basic Structure:** อธิบายโครงสร้างพื้นฐานของ HTML เช่น ``, ``, `
`, `` -- **Tags and Elements:** แนะนำแท็กพื้นฐาน เช่น `