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

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

1
แนวปฏิบัติที่ดีที่สุดในการจัดทำไลเซนส์ห้องสมุดบุคคลที่สามคือ“ เอกสาร”?
ฉันกำลังพัฒนาโครงการโอเพนซอร์สขนาดเล็ก แอปพลิเคชั่นนี้ใช้ไลบรารี่ของบุคคลที่สามจำนวนมากที่มีลิขสิทธิ์มากมาย: Apache, MIT, BSD, LGPL และ CDDL ใบอนุญาตแต่ละใบมีข้อกำหนด "เอกสาร" ของตัวเอง ตัวอย่างเช่น Apache License, v2.0 พูดว่า: หากงานมีไฟล์ข้อความ "ประกาศ" เป็นส่วนหนึ่งของการเผยแพร่งานดัดแปลงใด ๆ ที่คุณแจกจ่ายจะต้องมีสำเนาประกาศเกี่ยวกับแหล่งที่มาที่สามารถอ่านได้ที่อยู่ในไฟล์ประกาศดังกล่าว ใบอนุญาต MIT ประกอบด้วยประกาศลิขสิทธิ์และพูดว่า: ประกาศเกี่ยวกับลิขสิทธิ์ข้างต้นและประกาศการอนุญาตนี้จะรวมอยู่ในสำเนาทั้งหมดหรือบางส่วนที่สำคัญของซอฟต์แวร์ ใบอนุญาต BSD ยังมีประกาศลิขสิทธิ์และพูดว่า: การแจกจ่ายซ้ำในรูปแบบไบนารีจะต้องทำซ้ำประกาศลิขสิทธิ์ข้างต้นรายการเงื่อนไขนี้และข้อจำกัดความรับผิดชอบต่อไปนี้ในเอกสารและ / หรือวัสดุอื่น ๆ ที่มาพร้อมกับการกระจาย LGPL v.3 พูดว่า: (คุณควร) ให้คำบอกกล่าวที่เด่นชัดกับสำเนาของงานรวมแต่ละชุดที่มีการใช้งานห้องสมุดและห้องสมุดและการใช้งานนั้นได้รับการคุ้มครองโดยใบอนุญาตนี้ ใบอนุญาต LGPL และ CDDL ยังต้องการการจัดหาซอร์สโค้ดพร้อมกับรูปแบบไบนารีของไลบรารีดังนั้นข้อมูลเกี่ยวกับวิธีการที่ซอร์สโค้ดสามารถรับได้ควรมีการจัดเตรียมไว้ที่ใดที่หนึ่ง แนวปฏิบัติที่ดีที่สุดสำหรับการจัดเรียงข้อมูลทั้งหมดนี้คืออะไร ฉันควรสร้างไฟล์ข้อความและคัดลอกเนื้อหาของNOTICEไฟล์ทั้งหมด, MIT และ BSD ลิขสิทธิ์เป็นต้นลงในไฟล์นั้นหรือไม่? ... …

3
สแลชต่อท้ายใน RESTful API
ฉันได้มีการถกเถียงกันว่าจะทำอย่างไรกับการต่อท้ายสแลชใน RESTful API ให้บอกว่าฉันมีทรัพยากรที่เรียกว่าสุนัขและทรัพยากรรองสำหรับสุนัขแต่ละตัว ดังนั้นเราสามารถทำสิ่งต่อไปนี้: GET/PUT/POST/DELETE http://example.com/dogs GET/PUT/POST/DELETE http://example.com/dogs/{id} แต่เราจะทำอย่างไรกับกรณีพิเศษต่อไปนี้: GET/PUT/POST/DELETE http://example.com/dogs/ มุมมองส่วนตัวของฉันคือว่าเรื่องนี้ไม่ว่าจะเป็นส่งคำขอไปเป็นทรัพยากรบุคคลที่มีสุนัข id null= ฉันคิดว่า API ควรส่งคืน 404 สำหรับกรณีนี้ บางคนบอกว่าคำขอกำลังเข้าถึงทรัพยากรสุนัขนั่นก็คือละเว้นการต่อท้ายสแลชจะถูกละเว้น ไม่มีใครรู้คำตอบที่ชัดเจน?
60 api  rest  http 

5
R vs Python สำหรับการวิเคราะห์ข้อมูล [ปิด]
ฉันเขียนโปรแกรมมาประมาณปีแล้วและสนใจการวิเคราะห์ข้อมูลและการเรียนรู้ของเครื่องจักร ฉันกำลังเข้าร่วมหลักสูตรออนไลน์สองสามหลักสูตรและกำลังอ่านหนังสือสองสามเล่ม ทุกสิ่งที่ฉันทำใช้ทั้ง R หรือ Python และฉันกำลังมองหาคำแนะนำว่าควรให้ความสำคัญกับภาษาใดภาษาหนึ่ง (และถ้าเป็นเช่นนั้น) หรือดำเนินการกับทั้งสองอย่าง พวกเขาเติมเต็มซึ่งกันและกันหรือไม่ - ฉันควรพูดถึงว่าฉันใช้ C # ในโรงเรียน แต่ฉันคุ้นเคยกับ Python ผ่านการศึกษาด้วยตนเอง

9
เหตุใดภาษาต่างๆจึงไม่รวมความหมายไว้เป็นตัวดำเนินการเชิงตรรกะ
อาจเป็นคำถามที่แปลก แต่ทำไมไม่มีความหมายเป็นตัวดำเนินการเชิงตรรกะในหลายภาษา (Java, C, C ++, Python Haskell - แม้ว่าสุดท้ายจะมีตัวดำเนินการที่ผู้ใช้กำหนดไว้เล็กน้อยเพื่อเพิ่มมัน)? ฉันพบความหมายเชิงตรรกะที่ชัดเจนมากขึ้นในการเขียน (โดยเฉพาะอย่างยิ่งในการอ้างหรือการแสดงออกที่เหมือนยืนยัน) แล้วปฏิเสธด้วยหรือ: encrypt(buf, key, mode, iv = null) { assert (mode != ECB --> iv != null); assert (mode == ECB || iv != null); assert (implies(mode != ECB, iv != null)); // User-defined function }

7
การใช้ขอบเขตที่กำหนดสำหรับบิตแฟล็กใน C ++
enum X : int(C #) หรือenum class X : int(C ++ 11) เป็นชนิดที่มีเขตข้อมูลภายในที่ซ่อนของintที่สามารถเก็บค่าใด ๆ นอกจากนี้ค่าคงที่จำนวนหนึ่งที่กำหนดไว้ล่วงหน้าของXจะถูกกำหนดไว้ใน enum เป็นไปได้ที่จะส่งค่า enum ให้เป็นค่าจำนวนเต็มและในทางกลับกัน ทั้งหมดนี้เป็นจริงทั้งใน C # และ C ++ 11 ใน C # enums ไม่ได้ใช้เพียงเพื่อเก็บค่าของแต่ละบุคคล แต่ยังถืออยู่รวมกันค่าที่เหมาะสมของธงตามคำแนะนำของไมโครซอฟท์ เช่น enums (ปกติ แต่ไม่จำเป็น) ตกแต่งด้วย[Flags]แอตทริบิวต์ เพื่อทำให้ชีวิตของนักพัฒนาง่ายขึ้นผู้ประกอบการระดับบิต (OR, และอื่น ๆ ... ) จะได้รับการโหลดมากเกินไปเพื่อให้คุณสามารถทำสิ่งนี้ได้อย่างง่ายดาย (C #): void M(NumericType flags); M(NumericType.Sign …

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

11
จะทราบได้อย่างไรว่าโปรแกรมเมอร์ของคุณทำงานผิดปกติหรือไม่? [ปิด]
ฉันเป็นผู้นำทีมพร้อมนักพัฒนา 5+ คน ฉันมีนักพัฒนา (เรียกเขาว่าA ) ซึ่งเป็นโปรแกรมเมอร์ที่ดีผู้เขียนโค้ดที่ดีสะอาดและเข้าใจง่าย อย่างไรก็ตามเขาค่อนข้างยากที่จะจัดการและบางครั้งฉันก็สงสัยว่าเขามีประสิทธิภาพต่ำกว่าจริงหรือไม่ บริษัท ของเรากำหนดให้ผู้พัฒนาระบุความคืบหน้าการทำงานในตัวติดตามข้อผิดพลาดที่เราใช้ไม่มากเท่ากับการตรวจสอบโปรแกรมเมอร์ แต่เพื่อให้ผู้มีส่วนได้เสียทราบถึงความคืบหน้า สิ่งนี้เป็นเพียงการอัปเดตความคืบหน้าของงานเมื่อเสร็จแล้ว (อาจจะ 3 สัปดาห์หลังจากมีการใช้งานครั้งแรก) และนี่ทำให้ทุกคนสงสัยว่าเกิดอะไรขึ้นในช่วงกลางสัปดาห์ของการพัฒนา เขาจะไม่เปลี่ยนนิสัยของเขาแม้จะละเอียดละเอียดซ้ำ ๆ (ไม่เป็นไรนักพัฒนาเกลียดงานเอกสารฉันก็เช่นกัน) เมื่อ 2-3 เดือนที่ผ่านมาเขาลาบ่อยเนื่องจากมีเหตุการณ์ต่าง ๆ - ไม่ว่าเขาจะป่วยหรือต้องเข้าร่วมกิจกรรมส่วนตัวมากมาย (ไม่เป็นไรสิ่งเลวร้ายเกิดขึ้นในสายเป็นเรื่องบังเอิญ) เรากำหนด sprints หรือ roadmaps สำหรับแต่ละเดือน และในจุดเริ่มต้นของการวิ่งที่เราจะหารือเกี่ยวกับปริมาณของการทำงานในแต่ละของนักพัฒนาที่ต้องทำในการวิ่งและนักพัฒนาจะได้รับการกำหนดระยะเวลาที่พวกเขาต้องการสำหรับแต่ละงาน เขามักจะไม่สามารถทำสิ่งเหล่านี้ให้สำเร็จได้ทั้งหมด (ไม่เป็นไรนักพัฒนาพลาดกำหนดเวลาเป็นประจำไม่ใช่เพราะความผิดของพวกเขา) ฉันอาศัยอยู่ในสิงคโปร์ ไม่แน่ใจว่าสำคัญหรือไม่ ใช่ชาวเอเชียเป็นที่รู้กันว่าเป็นคนขี้ขลาด แต่สิ่งนั้นสำคัญหรือไม่? หากมีเหตุการณ์ข้างต้นเพียงหนึ่งหรือสองเหตุการณ์เกิดขึ้นฉันจะไม่รู้สึกว่าAกำลังดำเนินการอยู่ แต่พวกเขาทั้งหมดเกิดขึ้นพร้อมกัน ดังนั้นฉันจึงมีความรู้สึกว่าAกำลังดำเนินการอยู่และอาจจะเป็น - พระเจ้าห้ามไม่ให้หลุดออกจากตำแหน่ง นี่เป็นเพียงความรู้สึกจากประสบการณ์หลายปีของฉันในฐานะโปรแกรมเมอร์ แต่ฉันอาจจะผิด เป็นการยากที่จะวัดการทำงานของโปรแกรมเมอร์เนื่องจากงานทั้งสองไม่เหมือนกันและไม่มีวัตถุประสงค์มาตรฐานในการวัดความมุ่งมั่นของโปรแกรมเมอร์ที่มีต่อ บริษัท ของคุณ มันเป็นไปไม่ได้เลยทีเดียวที่จะบอกว่าโปรแกรมเมอร์กำลังทำงานของเขาอยู่หรือไม่ สิ่งที่คุณทำได้คือการไว้วางใจพวกเขา …

9
นักพัฒนาซอฟต์แวร์ควรทำหน้าที่เป็นผู้ทดสอบหรือไม่ [ปิด]
เราเป็นทีมการต่อสู้ของนักพัฒนา 3 คนนักออกแบบ 1 คนต้นแบบการต่อสู้และเจ้าของผลิตภัณฑ์ อย่างไรก็ตามเราไม่มีผู้ทดสอบอย่างเป็นทางการในทีมของเรา ปัญหาที่เกิดขึ้นกับเราเสมอคือการทดสอบแอปพลิเคชันและผ่านการทดสอบและการลบข้อบกพร่องนั้นได้ถูกกำหนดเป็นหนึ่งในเกณฑ์ในการพิจารณา PBI (Product Backlog Item) เช่นเดียวกับที่ทำ แต่ปัญหาคือว่าไม่ว่าเรา (นักพัฒนา 3 คนและนักออกแบบ 1 คน) จะพยายามทดสอบแอปพลิเคชันและใช้งานกรณียังคงมีข้อบกพร่องบางอย่างที่ไม่เห็นและทำลายการนำเสนอของเรา ( กฎหมายของเมอร์ฟี่ ) เพื่อเป็นการแก้ไขเราแนะนำให้ บริษัท ว่าจ้างผู้ทดสอบรายใหม่ ใครบางคนที่ทำหน้าที่ทดสอบและทดสอบเท่านั้น ผู้ทดสอบมืออาชีพอย่างเป็นทางการ อย่างไรก็ตามปัญหาคือว่าการต่อสู้หลักและผู้มีส่วนได้เสียเชื่อว่านักพัฒนา (หรือนักออกแบบ) ควรเป็นผู้ทดสอบ ถูกต้องหรือไม่ เราควรพัฒนา (หรือผู้ออกแบบ) ด้วยเช่นกัน?
60 testing  scrum 

11
ทำไมการใช้ abstractions (เช่น LINQ) จึงเป็นเรื่องต้องห้าม? [ปิด]
ฉันเป็นผู้รับจ้างอิสระดังนั้นฉันจึงสัมภาษณ์ 3-4 ครั้งต่อปีเพื่อหากิ๊กใหม่ ๆ ตอนนี้ฉันอยู่ในรอบนั้นและกลับกลายเป็นโอกาสแม้ว่าฉันจะรู้สึกว่าการสัมภาษณ์เป็นไปด้วยดี สิ่งเดียวกันเกิดขึ้นกับฉันสองสามครั้งในปีนี้ ตอนนี้ฉันไม่ได้เป็นคนที่สมบูรณ์แบบและฉันไม่คาดหวังว่าจะเป็นแบบที่ดีสำหรับทุกองค์กร ที่กล่าวว่าแม่นเฉลี่ยของฉันต่ำกว่าปกติดังนั้นฉันถามผู้สัมภาษณ์สุดท้ายของฉันสำหรับข้อเสนอแนะที่สร้างสรรค์และเขาส่ง! สิ่งสำคัญตามที่ผู้สัมภาษณ์กล่าวคือฉันดูเหมือนจะเอนตัวไปสู่การใช้ abstractions (เช่น LINQ) มากกว่าที่จะไปสู่อัลกอริทึมที่ต่ำกว่าและมีการเติบโตแบบออร์แกนิก บนพื้นผิวสิ่งนี้ก็สมเหตุสมผล - ในความเป็นจริงมันทำให้คนอื่นปฏิเสธด้วยเช่นกันเพราะฉันพูดเรื่อง LINQ ในการสัมภาษณ์เหล่านั้นด้วยและดูเหมือนว่าผู้สัมภาษณ์รู้เรื่อง LINQ ไม่มากนัก (แม้ว่าพวกเขาจะเป็น. NET ผู้ชาย) ดังนั้นตอนนี้ฉันเหลือคำถามนี้:ถ้าเราควรจะ "ยืนอยู่บนไหล่ของยักษ์" และใช้ abstractions ที่มีให้เรา (เช่น LINQ) แล้วทำไมบางคนคิดว่ามันต้องห้าม? มันไม่สมเหตุสมผลที่จะดึงรหัส "ปิดชั้นวาง" ถ้ามันบรรลุเป้าหมายเดียวกันโดยไม่มีค่าใช้จ่ายเพิ่มเติมหรือไม่ สำหรับฉันแล้วดูเหมือนว่า LINQ แม้ว่ามันจะเป็นนามธรรม แต่ก็เป็นเพียงนามธรรมของอัลกอริทึมเดียวกันทั้งหมดที่จะเขียนเพื่อให้บรรลุจุดสิ้นสุดเดียวกัน เฉพาะการทดสอบประสิทธิภาพเท่านั้นที่สามารถบอกคุณได้ว่าวิธีการที่กำหนดเองของคุณดีกว่าหรือไม่ แต่ถ้าสิ่งใดที่ LINQ มีคุณสมบัติตรงตามข้อกำหนดทำไมไม่ต้องเขียนชั้นเรียนของคุณเองในตอนแรก ฉันไม่ได้ตั้งใจจะให้ความสำคัญกับ LINQ ที่นี่ ฉันแน่ใจว่าโลกของ JAVA นั้นมีบางสิ่งที่คล้ายคลึงกันฉันแค่อยากจะรู้ว่าทำไมคนบางคนถึงรู้สึกอึดอัดใจกับความคิดที่จะใช้สิ่งที่เป็นนามธรรมที่พวกเขาไม่ได้เขียน UPDATE ตามที่ …

16
แนวทางปฏิบัติที่ดีที่สุดสำหรับ if / return
ฉันต้องการที่จะรู้ว่าสิ่งที่ถือว่าเป็นวิธีที่ดีกว่าของการกลับมาเมื่อฉันมีifคำสั่ง ตัวอย่างที่ 1: public bool MyFunction() { // Get some string for this example string myString = GetString(); if (myString == null) { return false; } else { myString = "Name " + myString; // Do something more here... return true; } } ตัวอย่างที่ 2: public bool MyFunction() { // …

10
มีเรื่องแบบนี้อยู่นานเกินไปไหม? [ปิด]
หลังจากอ่านหัวข้อที่เกี่ยวข้องกับงาน "กระโดดข้าม" สองสามครั้งเมื่อเร็ว ๆ นี้ฉันคิดอยู่เสมอว่าการข้ามงานไปทำอะไรอีกปัญหาหนึ่ง ฉันรู้จักคนหลายคน (โดยเฉพาะใน บริษัท ขนาดใหญ่ที่ค่อนข้างเฉื่อยชา) ซึ่งรู้สึกสบายใจในบทบาทที่เงียบเหงาและไม่มีข้อกังขาและอยู่รอบ ๆ เป็นเวลานานมาก - พูดว่า 10 หรือ 15 ปีหรือมากกว่านั้น พวกเขาอาจจะย้ายไปรอบ ๆ ภายในเล็กน้อย แต่ส่วนใหญ่เป็นกรณีของ " ประสบการณ์หนึ่งปีที่ผ่านมา 15 ครั้ง " เนื่องจากผู้จัดการการจ้างงานที่มีประสบการณ์จะพูดว่า หรือจะนำไปทางอื่นพวกเขา"โครงการพิเศษ" กรณี เพียงแค่นั่งในบทบาทที่สะดวกสบายซึ่งไม่มีการเรียนรู้อีกต่อไป แต่นั่นอาจดูโอเคบนกระดาษ (บนประวัติย่อของพวกเขา) หากสิ่งต่าง ๆ ที่พวกเขาเกี่ยวข้องมีการประดับประดากันเล็กน้อย สิ่งที่ทำให้ฉันคิดเกี่ยวกับเรื่องนี้คือบทบาทที่ยาวที่สุดในประวัติย่อของฉัน (เกือบ 6 ปี) เหมาะกับประเภทนี้อย่างน้อยอย่างอ่อนโยน ถ้าฉันซื่อสัตย์ต่อสติปัญญาอย่างสมบูรณ์ฉันจะบอกว่าฉันมีประสบการณ์การเรียนรู้ 3 ปีเท่านั้น ช่วง 2-3 ปีที่ผ่านมาเป็นโหมดการบำรุงรักษาที่ดูสบาย ๆ ดังนั้นฉันรู้มือแรกว่ามันเป็นไปได้มากกว่า "ผู้อาวุโส" …

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

5
จะอธิบายให้คนที่ไม่ใช่ช่างเทคนิคทราบได้อย่างไรว่าทำไมงานจึงใช้เวลานานกว่าที่คิด [ปิด]
นักพัฒนาซอฟต์แวร์เกือบทุกคนต้องตอบคำถามจากฝ่ายธุรกิจเช่น: เหตุใดจึงต้องใช้เวลา 2 วันในการเพิ่มแบบฟอร์มติดต่ออย่างง่ายนี้ เมื่อนักพัฒนาประเมินงานนี้พวกเขาอาจแบ่งออกเป็นขั้นตอน: ทำการเปลี่ยนแปลงฐานข้อมูล เพิ่มประสิทธิภาพการเปลี่ยนแปลงฐานข้อมูลเพื่อความเร็ว เพิ่มส่วนหน้า HTML เขียนโค้ดฝั่งเซิร์ฟเวอร์ เพิ่มการตรวจสอบ เพิ่มจาวาสคริปต์ฝั่งไคลเอ็นต์ ใช้การทดสอบหน่วย ตรวจสอบให้แน่ใจว่าการตั้งค่า SEO ใช้งานได้ ใช้การยืนยันทางอีเมล refactor และเพิ่มประสิทธิภาพรหัสสำหรับความเร็ว ... สิ่งเหล่านี้อาจอธิบายได้ยากสำหรับบุคคลที่ไม่ใช่ด้านเทคนิคซึ่งโดยทั่วไปแล้วเห็นว่างานทั้งหมดเป็นเพียงการรวบรวม HTML และสร้างตารางเพื่อเก็บข้อมูล สำหรับพวกเขามันอาจจะเป็น 2 ชั่วโมงสูงสุด ดังนั้นจะมีวิธีที่ดีกว่าในการอธิบายว่าทำไมการประมาณการจึงสูงถึงผู้ที่ไม่ใช่นักพัฒนา

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

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

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