วิศวกรรมซอฟต์แวร์

ถาม - ตอบสำหรับมืออาชีพนักวิชาการและนักเรียนที่ทำงานในวงจรการพัฒนาระบบ

7
มันเป็นสัญญาณที่ไม่ดีที่ฉันมักจะออกแบบใหม่ในขณะที่ฉันพัฒนาโครงการหรือไม่?
เมื่อฉันเริ่มเขียนโปรแกรมครั้งแรกฉันคิดว่าวันหนึ่งฉันจะไปถึงจุดที่ฉันจะเริ่มโครงการด้วยการนั่งลงและร่างแผนภาพ UML ของชั้นเรียนทั้งหมดจากนั้นค่อนข้างติดอยู่กับเรื่องนั้น ตอนนี้ฉันได้เขียนโปรแกรมมาสองสามปีแล้วและมันก็ไม่ได้เป็นเช่นนั้น เมื่อฉันทำโครงการฉันมักจะพูดว่า "เฮ้ฉันต้องการเรียนเพื่อทำ_ _. ฉันไม่เคยคิดถึงเรื่องนี้มาก่อนเลย" "เดี๋ยวก่อนฟังก์ชั่นนี้ควรอยู่ในชั้นเรียนนั้นแทนที่จะเป็นแบบนี้ฉันจะย้ายมันไป" "นี่ควรจะเป็นสองคลาสแทนหนึ่งฉันจะแยกมันออก" "ฉันควรทำให้คลาสแบบสแตนด์อโลนทั้งสามนี้สืบทอดมาจากคลาสนามธรรม" Etcetera, Etcetera มันเป็นสัญญาณที่ไม่ดีที่ฉันมักจะออกแบบใหม่เช่นนี้เมื่อฉันไปตาม? นี่หมายความว่าฉันเป็นโปรแกรมเมอร์ที่ยากจนหรือเป็นเรื่องปกติ

10
วิธีที่มีประสิทธิภาพมากที่สุดในการเพิ่มเงินเดือนโปรแกรมเมอร์นอกเหนือจากการทำงานของคุณคืออะไร? [ปิด]
หากคุณมีเวลาและทรัพยากรอะไรจะเป็นวิธีที่มีประสิทธิภาพมากที่สุดในการเพิ่มเงินเดือนของคุณในฐานะโปรแกรมเมอร์เต็มเวลานอกการทำงานของคุณ โดย "เงินเดือน" ที่นี่ฉันหมายถึงเงินเดือน (ปรับสำหรับค่าใช้จ่ายตามตำแหน่ง) มาจากงานเขียนโปรแกรมเพียงงานเดียว
39 education  resume 

11
ทำไมการป้องกัน SQL injection ไม่ให้ความสำคัญสูง?
ใน Stack Overflow ฉันเห็นโค้ด PHP จำนวนมากในคำถามและคำตอบที่มีคำสั่ง MySQL ที่มีความเสี่ยงสูงต่อการถูกโจมตีจากการฉีด SQL แม้ว่าจะมีวิธีการพื้นฐานที่ใช้กันอย่างแพร่หลายมานานกว่าทศวรรษ มีเหตุผลหรือไม่ที่ข้อมูลโค้ดประเภทนี้ยังใช้อยู่ในปัจจุบัน?
39 php  mysql 

4
คำต่อท้ายหลังจากชื่อวิศวกรซอฟต์แวร์ / ผู้พัฒนาหมายถึงอะไร (เช่น Software Developer III) [ปิด]
ฉันเห็นโพสต์งานเป็น "Java Software Developer III" หรือ "Software Developer II" ต่อไป มีเอกสารอย่างเป็นทางการใด ๆ ที่จำแนกความแตกต่างเหล่านี้หรือไม่

9
เหตุใดการสัมภาษณ์ทางวิศวกรรม SW จึงเป็นเรื่องยากอย่างไม่เป็นสัดส่วน (เทียบกับการสัมภาษณ์งานวิจัย) [ปิด]
ครั้งแรกพื้นหลังบางอย่างกับฉัน ฉันมีปริญญาเอกใน CS และมีงานทั้งในฐานะวิศวกรซอฟต์แวร์และในฐานะนักวิจัยการวิจัยและพัฒนาทั้งใน บริษัท ขนาดใหญ่มากที่คุณรู้จักดี ฉันเพิ่งเปลี่ยนงานและสัมภาษณ์ตำแหน่งทั้งสองประเภท (เหมือนที่เคยทำในอดีต) การสังเกตของฉัน: การสัมภาษณ์งานทางวิศวกรรมของ SW นั้นเป็นวิธีที่ยากกว่าการสัมภาษณ์งานนักวิจัยของ CS อย่างไม่เป็นสัดส่วน แต่งานของนักวิจัยนั้นให้ผลตอบแทนสูงกว่าการแข่งขันมากขึ้นให้ผลตอบแทนที่น่าสนใจและมีโอกาสสูงกว่า นี่คือวงสัมภาษณ์ทั่วไปสำหรับนักวิจัย: สัมภาษณ์ทางโทรศัพท์เพื่อดูว่างานวิจัยของฉันสอดคล้องกับงานวิจัยของห้องปฏิบัติการหรือไม่ ด้วยตนเอง: ให้การนำเสนอผลงานวิจัยล่าสุดของฉันเป็นเวลาหนึ่งชั่วโมง (ซึ่งอาจหมายถึงมูลค่าการทำงาน 9 เดือน) และตอบคำถามจากผู้ชม การสัมภาษณ์แบบตัวต่อตัวกับนักวิจัยประมาณ 5 คนโดยที่พวกเขาถามคำถามที่เหมาะสมกับงาน / สิ่งพิมพ์ / สิทธิบัตรของฉันรวมถึง: คำถามทางเทคนิคที่งานของฉันเหมาะกับงานที่เกี่ยวข้องและฉันจะขยายงานของฉันไปยัง พื้นที่ใหม่ นี่คือวงสัมภาษณ์ทั่วไปสำหรับวิศวกร SW: การสัมภาษณ์ทางโทรศัพท์ที่ฉันถามคำถามอัลกอริทึมและอาจทำการเข้ารหัสบางส่วน มาตรฐานสวย การสัมภาษณ์บุคคลในไวท์บอร์ดที่พวกเขาเจาะ F *** ออกมาจากคุณในความลับ C ++ minutia (เช่นการทำงานของฟังก์ชันการเรียกฟังก์ชัน polymorphic เสมือนจริง) อัลกอริธึม , การออกแบบระบบ (ออกแบบตัวโหลดบาลานเซอร์ฐานข้อมูล) …
39 interview 

4
เวิร์กโฟลว์ Lisp ของคุณมีลักษณะอย่างไร [ปิด]
ตอนนี้ฉันกำลังเรียนรู้ Lisp มาจากความก้าวหน้าทางภาษานั่นคือ Locomotive BASIC -> Z80 Assembler -> Pascal -> C -> Perl -> C # -> Ruby แนวทางของฉันคือการไปพร้อมกัน: เขียนมีดโกนเว็บอย่างง่ายโดยใช้ SBCL, QuickLisp, closed-html และ drakma ดูการบรรยาย SICP ฉันคิดว่ามันใช้งานได้ดี ฉันกำลังพัฒนา 'Lisp goggles' ที่ดีซึ่งตอนนี้ฉันสามารถอ่าน Lisp ได้ง่ายพอสมควร ฉันยังรู้สึกว่าระบบ Lisp ทำงานอย่างไรเช่น Quicklisp สำหรับการพึ่งพา แต่สิ่งที่ฉันพลาดไปจริง ๆ ก็คือความรู้สึกว่า Lisper ที่มีประสบการณ์ทำงานอย่างไร เมื่อฉันเข้ารหัสสำหรับ. NET ฉันมี Visual Studio …
39 lisp 

11
การเข้าสู่ระบบ: ทำไมและอะไร [ปิด]
ฉันไม่เคยเขียนโปรแกรมที่ใช้ประโยชน์จากการบันทึกอย่างมีนัยสำคัญ สิ่งที่ฉันทำมากที่สุดคือการจับภาพร่องรอยสแต็กเมื่อมีข้อยกเว้นเกิดขึ้น ฉันสงสัยว่าคนอื่นเข้าสู่ระบบมากแค่ไหน? แอปพลิเคชันที่คุณเขียนนั้นขึ้นอยู่กับประเภทใด คุณพบว่าบันทึกมีประโยชน์จริงหรือไม่

16
คุณเก็บความคิดของคุณเป็นความลับหรือไม่? และทำไม? [ปิด]
ฉันเชื่อว่าโปรแกรมเมอร์คนใดมีความคิดหลายอย่างที่เขา / เธอคิดว่าเป็นนวัตกรรมหรือมีค่าอย่างน้อย อาจเป็นความคิดเกี่ยวกับผลิตภัณฑ์ใหม่ที่จะทำให้โลกนี้ดีขึ้นหรือเป็นแนวทางการพัฒนาใหม่ ฯลฯ แต่ความคิดที่ดีจะต้องดำเนินการและส่งเสริม / โฆษณา สิ่งนี้ต้องใช้งานจำนวนมาก (การพิสูจน์แนวคิดต้นแบบตัวอย่างเทคโนโลยีเป็นต้น) และเงินจำนวนมาก (การโฆษณาการตลาดและอื่น ๆ ที่เหมาะสม) ดังนั้นเดือนต่อมาความคิดยังคงอยู่ในหัวของเรา แต่ไม่มีอะไรทำเพราะมันยากยาวและมีราคาแพงบางครั้งก็เป็นไปไม่ได้สำหรับนักพัฒนาเดียว ในทางตรงกันข้ามมันจะเจ็บปวดที่จะแบ่งปันความคิดของเราและเห็น บริษัท ขนาดกลางที่มีทรัพยากรเพียงพอที่จะทำสิ่งที่เป็นประโยชน์จากมันและประสบความสำเร็จและเงิน ดังนั้นคุณจะทำอย่างไรกับความคิดของคุณคุณแทบจะไม่สามารถนำไปใช้หรือจดสิทธิบัตรได้ คุณพูดคุยเกี่ยวกับพวกเขาได้อย่างอิสระในกระดานสนทนาและกับนักพัฒนาอื่น ๆ ? คุณทำให้พวกเขาเป็นสิ่งที่มีค่าโดยไม่เคยพูดถึงพวกเขากับใคร? หากคุณเก็บความคิดของคุณทำไมคุณถึงทำเช่นนั้น? เป็นเพราะคุณหวังว่าสักวันคุณจะสามารถนำไปใช้และประสบความสำเร็จอย่างมากในขณะที่คุณรู้ดีจากประสบการณ์ว่าเป็นยูโทเปีย?

13
เหตุใดกำหนดการของซอฟต์แวร์จึงยากที่จะกำหนด
ดูเหมือนว่าจากประสบการณ์ของฉันการให้วิศวกรของเราประเมินอย่างถูกต้องและกำหนดงานที่ต้องทำให้เสร็จนั้นก็เหมือนกับการถอนฟัน แทนที่จะเพียงแค่ให้การประมาณย้อยเป็นเวลา 2-3 สัปดาห์หรือ 3-6 เดือน ... วิธีที่ง่ายที่สุดในการกำหนดตารางเวลาซอฟต์แวร์คืออะไรดังนั้นพวกเขาจึงไม่เจ็บปวดที่จะกำหนด? ตัวอย่างเช่นลูกค้า A ต้องการสถานที่ภายในวันที่ 02/01/2011 คุณจะกำหนดเวลาในการใช้คุณสมบัตินี้ได้อย่างไรโดยทราบว่าอาจต้องมีการแก้ไขข้อบกพร่องอื่น ๆ ระหว่างการทำงาน

14
วิธีการได้รับความเคารพจากสมาชิกในทีมในฐานะผู้นำทีม [ปิด]
หากคุณได้รับการว่าจ้างให้เป็น บริษัท ใหม่ในฐานะผู้นำทีม (พูดถึง 10 ทีม) หนึ่งในสิ่งสำคัญที่ต้องทำคือการได้รับความเคารพจากสมาชิกในทีม ในช่วงแรกผู้นำทีมใหม่อาจไม่ทราบถึงวัฒนธรรมของทีมฐานรหัสและโดเมนธุรกิจ: กล่าวอีกนัยหนึ่งก็คือ neophyte ที่สมบูรณ์ ใครจะไปเกี่ยวกับเรื่องนี้? สิ่งที่ควรทำและไม่ควรทำคืออะไร

16
อะไรเป็นเหตุผลที่ทำให้การใช้ IDE กับตัวแก้ไขมาตรฐานคืออะไร [ปิด]
ฉันพบว่าตัวเองใช้โปรแกรมแก้ไขข้อความที่ฉันเลือก (vim, nano, gedit, เลือกพิษของคุณ) บ่อยกว่า IDE ใด ๆ ในตอนปลาย หลังจากสังเกตเห็นทางลัด IDE ของฉันได้รับฉันเต็มไปด้วยฝุ่นเริ่มคิดเกี่ยวกับเรื่องนี้และสงสัย: สิ่งที่ justifies ใช้ของ IDE สำหรับคุณเห็นด้วยกับการแก้ไขข้อความ ? สำหรับเรื่องนั้นคุณมีเหตุผลอะไรที่ไม่ได้ใช้ IDE และพึ่งพึ่งบรรณาธิการ

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

24
คุณจดจ่อกับการทำงานอย่างไร? [ปิด]
บางครั้งสิ่งที่ฉันต้องทำเพื่องานของฉันน่าสนใจและมีส่วนร่วม บางครั้งพวกเขาไม่ได้ บางครั้งพวกเขาก็ไม่ได้จริงๆ คุณมีกลยุทธ์หรือกลอุบายใด ๆ ในการรับมือกับสิ่งที่น่าเบื่อเหล่านั้นเมื่อสมองของคุณอยากจะทำอะไรนอกเหนือจากสิ่งที่คุณควรจะทำโดยเฉพาะอย่างยิ่งเมื่ออินเทอร์เน็ตและโอกาสไร้ขอบเขตสำหรับ Slack ที่น่าสนใจ?

7
ทุกภาษาเหมือนกันหรือไม่
เมื่อเร็ว ๆ นี้ฉันต้องเข้าใจการออกแบบโปรแกรมเล็ก ๆ ที่เขียนด้วยภาษาที่ฉันไม่มีความคิด ( ABAPถ้าคุณต้องรู้) ฉันสามารถคิดออกโดยไม่ยากเกินไป ฉันรู้ว่าการเรียนรู้ภาษาใหม่เป็นเกมลูกที่แตกต่างอย่างสิ้นเชิง แต่เข้าใจถึงความตั้งใจของรหัส (โดยเฉพาะรหัสมาตรฐานการผลิตซึ่งไม่จำเป็นต้องซับซ้อน) ในภาษาใด ๆ ก็ตามเป็นสิ่งที่ตรงไปตรงมาหากคุณรู้จักภาษาสองภาษา หนึ่งขั้นตอน / OO และหนึ่งการทำงาน) นี่เป็นเรื่องจริงหรือไม่ ภาษาการเขียนโปรแกรมทั้งหมดประกอบด้วยโครงสร้างที่คล้ายกันเช่นลูป, ข้อความสั่งแบบมีเงื่อนไขและการส่งข้อความระหว่างฟังก์ชั่นหรือไม่? มีภาษาที่ไม่ลึกลับซึ่งโปรแกรมเมอร์ Java / Ruby / Haskell ทั่วไปจะไม่สามารถเข้าใจได้หรือไม่? ทุกภาษามีต้นกำเนิดร่วมกันหรือไม่?

18
อะไรจะดีไปกว่าการเข้ารหัส - เดสก์ท็อปหรือแล็ปท็อป? [ปิด]
การใช้เดสก์ท็อปลดลงทุกวันในชีวิตประจำวัน แต่เพื่อวัตถุประสงค์ในการเขียนรหัสมีเหตุผลอะไรบ้างที่จะใช้เดสก์ท็อปผ่านแล็ปท็อป?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.