سلام دوستان! اگر ميخواهيد يك توسعهدهنده بهتر شويد و به دنبال چند نكته كاربردي هستيد، جاي درستي آمدهايد. در گذشته نقشههاي راه زيادي را مثل نقشه راه توسعهدهنده جاوا در سال ۲۰۲۴، نقشه راه توسعهدهنده وب، نقشه راه مهندس DevOps، و نقشه راه توسعهدهنده React.js را به اشتراك گذاشتهام. در اين مقاله قصد دارم چند نكته عملي براي تبديل شدن به يك توسعهدهنده بهتر و همهجانبه در سال ۲۰۲۴ با شما به اشتراك بگذارم.
بسياري از توسعهدهندگان جاوا از من ميپرسند چطور ميتوانم يك برنامهنويس بهتر شوم؟ چطور ميتوانم مهارتهاي برنامهنويسي خود را ارتقا دهم؟ يا مثلاً ميگويند من در جاوا خوب هستم ولي توانايي حل مسئله من چندان قوي نيست و غيره.
اين واقعيتي است كه در دوران امروز بيشتر شاهد حضور متخصصان زبانهاي برنامهنويسي هستيم تا برنامهنويسان واقعي. فهميدن كلمات كليدي، متدها و APIهاي زبان برنامهنويسي جاوا آسان است.
اما در عين حال، حل مسائل عملي، طراحي نرمافزارهاي قابل استفاده مجدد و مقاوم، و استفاده بهينه از ساختارهاي داده و الگوريتمها چالشبرانگيز است.
من اغلب ديدهام كه برنامهنويسان جاوا در مواقعي كه از آنها خواسته ميشود در زمان محدود يك راهحل طراحي و كدنويسي كنند، چندان خوب عمل نميكنند، اما در عين حال در مفاهيم و تئوريهاي جاوا بسيار مهارت دارند.
10 نكته براي تبديل شدن به يك برنامهنويس و توسعهدهنده نرمافزار بهتر در سال 2024
براي اينكه يك برنامهنويس بهتر شويد، بايد در زمينههايي مثل ساختار دادهها، الگوريتمها، طراحي با استفاده از اصول شيءگرايي (OOP)، چندنخي (multi-threading)، و مفاهيم مختلف برنامهنويسي مثل بازگشت (Recursion)، تقسيم و غلبه (divide and conquer)، نمونهسازي (prototyping) و تست واحد (unit testing) مهارت داشته باشيد. برنامهنويسي تركيبي از مهارتهاي مختلف است، بنابراين نميتوان آن را در زمان كوتاهي ياد گرفت؛ بلكه با گذشت زمان و كسب تجربه به دست ميآيد، اما اين اتفاق خود به خود نميافتد.
شما ميتوانيد پنج سال در شغل برنامهنويسي جاوا كار كنيد بدون اينكه تبديل به يك برنامهنويس خوب شويد. چون بيشتر مصاحبههاي شغلي جاوا بر تئوري تمركز دارند نه بر مهارتهاي برنامهنويسي و كدنويسي.
بسياري از برنامهنويسان اين مهارتهاي ضروري برنامهنويسي را تمرين نميكنند. اگر تست حل مسئله برنامهنويسي به عنوان يك الزام بود، مطمئنم كه برنامهنويسان متوسط عملكرد بهتري داشتند. به هر حال، اين ليست من از چيزهايي است كه ميتواند به شما كمك كند تا يك برنامهنويس خوب شويد.
1 - كدنويسي كدنويسي كدنويسي
چرا كدنويسي را در بالاي اين فهرست قرار دادهام؟ چون اين بخش هم دشوارترين و هم اصليترين بخش برنامهنويسي است.
با كدنويسي، شما به اشتباهات خود در طراحي، مديريت خطاها، و چندنخي (threading) پي ميبريد و سپس به آن مهارتها بازميگرديد تا آنها را بهبود دهيد. شما نميتوانيد تنها بر روي طراحي كار كنيد؛ كدنويسي خروجي ايجاد ميكند كه براي يادگيري و موفقيت حياتي است.
راستي، بعد از حل مسئله متوقف نشويد؛ هميشه بهتر است اولين راهحل خود را كنار بگذاريد. آن فقط يك نمونه اوليه است؛ راهحل بعدي شما بايد مشكلات و نيازهاي ناديدهاي را كه در هنگام ساخت نمونه اوليه كشف كردهايد، برطرف كند.
همچنين ميتوانيد دوره "Clean Code" توسط Maximillian Schwarzmuller براي توسعهدهندگان جاوا اسكريپت و دوره "Clean Code with Java: Learn Simple Design, Refactoring & TDD" براي توسعهدهندگان جاوا را بررسي كنيد تا بيشتر در مورد نوشتن كدي با كيفيت توليدي كه بتواند در برابر گذر زمان مقاوم باشد، ياد بگيريد.
2- كتاب بخوانيد
كدنويسي گفتنش آسانتر از انجام دادنش است، و تفاوت بزرگي بين كد خوب و كد بد وجود دارد. اما چطور ميتوان اين تفاوت را تشخيص داد؟ تا زماني كه يك كد خوب را نديده باشيد و ندانيد چرا يك كد خاص خوب است، نميتوانيد اين تفاوت را درك كنيد.
اينجاست كه كتابها به كمك ميآيند؛ بيشتر اوقات، نويسندگان خودشان برنامهنويسان بزرگي هستند و تجربهشان را به شكل كتاب ارائه ميدهند. من كتابها را دوست دارم، اما يكي از كتابهايي كه به طور خاص به من كمك كرد، كتاب "Clean Code" اثر عمو باب بود.
با خواندن اين كتاب، متوجه شدم كه مرتباً مشكلاتي را در كد خود پيدا ميكنم و هر از گاهي توصيههاي دادهشده در اين كتاب را به كار ميبرم. توصيه من اين است كه اگر با چنين كتابهايي روبرو شديد، حتماً آنها را بخوانيد. همچنين پيشنهاد ميكنم اين كتابهاي كلاسيك را چندين بار بخوانيد و هر از گاهي به آنها مراجعه كنيد.
كتاب ديگري كه مشابه اين است، Effective Java نوشته جاشوا بلاچ است كه پر از توصيههاي خوب است. همچنين با خواندن كتابها، از تجربه ديگران ياد ميگيريد، و فقط دو راه براي بهبود خودتان وجود دارد: يا از تجربه خودتان ياد بگيريد (كه بسيار محدود است) يا از تجربه ديگران (كه نامحدود است).
به ياد داشته باشيد كه بيشتر هميشه بهتر نيست. به جاي خواندن ۵ كتاب، پيشنهاد ميكنم دو كتابي را بخوانيد كه از خواندن چندباره آنها لذت ميبريد. اين دو كتاب نيز از فهرست كتابهاي ضروري من براي برنامهنويسان جاوا هستند.
3- تمرين مسائل مربوط به ساختار دادهها، الگوريتمها و طراحي سيستم
من فكر كردم كه اين مورد را به عنوان دومين آيتم قرار دهم، اما در نهايت سوم شد. به نظر من، اين مهمترين كاري است كه براي تبديل شدن به يك برنامهنويس بهتر بايد انجام دهيد. بيشتر برنامهنويسان خوبي كه ديدهام و با آنها آشنا شدهام، در زمينه ساختار دادهها، الگوريتمها و اصول پايهاي علوم كامپيوتر بسيار مهارت دارند.
با يادگيري اين موارد، ميتوانيد از امكانات موجود بهتر استفاده كنيد. از آنجا كه ساختار دادهها بخش كليدي هر برنامهاي است، داشتن دانش قوي در اين زمينهها به شما در حل مسائل كمك ميكند.
به همين ترتيب، آگاهي از اصول كليدي برنامهنويسي، الگوريتمهاي جستجو و مرتبسازي، و ديگر الگوريتمهاي شناخته شده، مهارتهاي برنامهنويسي شما را توسعه ميدهد.
ميتوانيد در يك دوره جامع مثل "Data Structure and Algorithms: Deep Dive Using Java" شركت كنيد تا بيشتر با ساختارهاي دادهاي پايه، ويژگيهاي آنها و زمان استفاده از آنها در برنامههاي خود آشنا شويد. اين يكي از بهترين دورههايي است كه من در اينترنت پيدا كردهام.
و اگر مطالعه كتاب را بيشتر از دورههاي آنلاين دوست داريد، ميتوانيد از اين كتابها براي بهبود دانش خود در زمينه ساختار دادهها و الگوريتمها استفاده كنيد.
يكي ديگر از موارد مهم براي تبديل شدن به يك توسعهدهنده بهتر، يادگيري طراحي سيستم و معماري نرمافزار است. اين چيزي است كه ميتواند تفاوت بين يك برنامهنويس با ۱۰ سال تجربه و يك برنامهنويس باتجربه را ايجاد كند.
شما بايد با نحوه كار سيستمها، چگونگي همكاري بخشهاي مختلف آنها، انواع مختلف معماريها مانند ميكروسرويسها و مونوليت، مزايا و معايب آنها و غيره آشنا باشيد.
اگر به منابعي نياز داريد، من دوره "Grokking System Design Interview" را در وبسايت Educative به شدت توصيه ميكنم. اين دوره تعاملي و بخش دوم آن كه درباره مسائل پيشرفته طراحي است، ميتواند چيزهاي مفيدي درباره طراحي و بهينهسازي سيستم به شما بياموزد.
4- مشاركت در پروژههاي اوپن سورس
مشاركت در كدهاي متنباز، بهويژه از پروژههايي مانند Apache، Google و برخي پروژههاي ديگر، روش ديگري براي بهبود مهارتهاي برنامهنويسي و تبديل شدن به يك برنامهنويس بهتر است. تنها عضويت در فهرست پستي آنها و دنبال كردن بحثها، به شما چيزهاي زيادي ميآموزد.
از آنجا كه بيشتر بحثها بين برنامهنويسان خوب انجام ميشود، گوش دادن به آنها و درك مشكلات، رويكردها، راهحلها و ديدگاههاي آنها به طور خودكار عادتهاي برنامهنويسي خوبي را در شما توسعه ميدهد.
براي بهرهبرداري بيشتر از اين فرصت، فقط به صورت غيرفعال ننشينيد، سوال بپرسيد، نظر خود را ارائه دهيد و به نظر ديگران نيز ارزش قائل شويد. اگر ميپرسيد كه چگونه با مشاركت در پروژههاي متنباز شروع كنيد، در اينجا مقالات خوبي از Medium براي يادگيري درباره مشاركت در پروژههاي متنباز وجود دارد.
5- خواندن وبلاگهاي خوب درباره ي برنامه نويسي
خواندن وبلاگهاي خوب بخشي كوچك از خواندن كتابها است. چگونه خواندن وبلاگها ميتواند به شما كمك كند تا برنامهنويس بهتري شويد؟ خب، واقعاً كمك ميكند. از آنجا كه وبلاگها معمولاً توسط خود برنامهنويسان نوشته ميشوند و بيشتر آنها نظرات و تجربيات شخصي خود را به اشتراك ميگذارند، معمولاً محتواي آنها براي شما مرتبط و مفيد است.
علاوه بر اين، وبلاگها اطلاعاتي مختصر و مفيد ارائه ميدهند كه به راحتي قابل هضم است. وبلاگها همچنين به يادگيري فناوريهاي جديد و ويژگيهاي جديد زبانها و APIهاي موجود كمك ميكنند.
بارها پيش آمده كه در يك پست وبلاگي كوتاه، نكات ظريف يا چيزهايي را از بخشي شناختهشده از جاوا كه ممكن است از قلم افتاده باشد، ديدهام. وقتي به دنبال مقالات خوب توسعه هستم، ترجيح ميدهم به وبسايتهايي مثل Dev.to، FreeCodeCamp و Medium، بهويژه نشريات متمركز بر توسعهدهندگان، مراجعه كنم.
6- خواندن نمونه كدها
اگر خواندن وبلاگها به شما كمك ميكند تا برنامهنويس بهتري شويد، خواندن كد حتي بيشتر از آن كمك ميكند؛ اما در عين حال، خواندن وبلاگها آسان است و خواندن كد دشوارتر است. آيا مقاومت ميبينيد؟ پس بايد آن را امتحان كنيد.
به كد پروژههاي متنباز، كد برنامهنويسان همكار، كدهاي موجود در كدهاي اختصاصي خود، كدهاي SDK جاوا نگاه كنيد و سعي كنيد بفهميد چگونه كار ميكنند؛ سعي كنيد ببينيد آنها چه كارهايي انجام ميدهند و چرا اين كارها را انجام ميدهند.
الگوها را پيدا كنيد، مهارتهاي ناوبري را توسعه دهيد؛ در ابتدا ممكن است اين كار خستهكننده و دشوار به نظر برسد، اما با گذشت زمان حس كد خوبي پيدا خواهيد كرد كه به شما در شناسايي اشتباهات خود، پيدا كردن اشتباهات و كاستيها و بوي بد كد كمك ميكند.
اين حس كد يكي از نشانههاي يك برنامهنويس بهتر است؛ آنها معمولاً به دنبال چيزهايي هستند كه شما از دست دادهايد.
7- نوشتن تستهاي واحد
تستهاي واحد فرآيند تفكر و كدنويسي را تكميل كرده و به شما كمك ميكنند تا طراحي بهتري داشته باشيد. هر چيزي كه تست كردن آن دشوار باشد، فرصتي براي بهبود دارد. همچنين، نوشتن تستهاي واحد در پيدا كردن نامهاي بهتر، انتزاع بهتر، رابطهاي بهتر، طراحي كلاسهاي انتزاعي و به طور كلي بهبود كيفيت كد بسيار كمك ميكند.
اما مانند كدنويسي و طراحي، تست واحد نيز براي برنامهنويسان متوسط كار دشواري است و شما مقاومت زيادي را در اين زمينه خواهيد ديد. برخي از برنامهنويسان تستهاي بياهميت مينويسند به جاي اينكه به سناريوهاي استفاده فكر كنند.
به ياد داشته باشيد، هيچ چيزي نميتواند جايگزين تفكر در فرآيند شود. پس از تحليل، طراحي و توسعه، تست واحد فرصتي ديگر براي بررسي سناريوها و شكافهاي موجود در كد شماست. اين را به يك قاعده تبديل كنيد: هميشه براي كد خود تست واحد بنويسيد.
اگر ميخواهيد تست واحد را در جاوا ياد بگيريد، پيشنهاد ميكنم با JUnit و Mockito آشنا شويد، كه دو فريمورك ضروري براي تست واحد در جاوا هستند. و اگر به دوره آموزشي نياز داريد، پيشنهاد ميكنم به دوره "JUnit 5 in 20 steps" از Ranga Karnan در Udemy بپيونديد.
اگر ميخواهيد مفاهيم پايه اي برنامه نويسي را بصورت كامل و اصولي درك كنيد بهتر است يك دوره مثل دوره ي 12 قدم برنامه نويسي را طي كنيد تا بتوانيد منطق برنامه نويسي را بخوبي درك كنيد.
اين دوره توسط مهندس سام نيك زاد در آموزشگاه برنامه نويسي آواسام برگزار شده است كه با سرچ گوگل به راحتي ميتوانيد در آن شركت كنيد.
8- انجام تست هاي مختلف كد
مانند تستهاي واحد، بررسي كد نيز يكي از روشهاي توسعه است كه به شما كمك ميكند تا برنامهنويس بهتري شويد. بررسي كد به هر دو طرف، يعني بازبينيكننده و نويسنده، كمك ميكند؛ بازبينيكننده حس كد خود را بهبود ميبخشد و مشاوره صادقانهاي ارائه ميدهد، در حالي كه نويسنده از اشتباهات خود ياد ميگيرد.
اغلب پيش ميآيد كه كدي كه فكر ميكنيد بدون نقص است، داراي باگهايي است كه تنها ديگر برنامهنويسان ميتوانند آنها را ببينند. بررسي كد و چك كردن توسط دو چشم اين كار را براي شما انجام ميدهد.
اگر خوششانس باشيد و فرصتي براي كار در شركتي كه تستهاي واحد و بررسي كد را به عنوان يك قاعده دارد، پيدا كنيد، احتمالاً برنامهنويس بهتري خواهيد بود. اين دو روش به شدت به بهبود مهارتهاي برنامهنويسي كمك ميكنند.
اگر ميپرسيد در بررسي كد چه نكاتي را بايد بررسي كنيد، پيشنهاد ميكنم بررسي كنيد كه آيا كد از نظر عملكردي صحيح است، آيا استانداردها و روشهاي طراحي مانند اصول طراحي SOLID و كنوانسيونهاي نامگذاري جاوا رعايت شدهاند يا خير. همچنين ميتوانيد بررسي كنيد كه آيا تستهاي واحد كافي وجود دارد يا نه، كه اغلب ناديده گرفته ميشود.
9- صحبت با ديگر برنامه نويسان همكار
خواندن يك فعاليت غيرفعال است در مقايسه با صحبت كردن. صحبت كردن درباره يك برنامه و بحث درباره آن با يك برنامهنويس همكار اغلب به حل بهتري منجر ميشود؛ اين طبيعي است زيرا ذهن شما وقتي صحبت ميكنيد و به ديگران گوش ميدهيد، بيشتر درگير ميشود.
من در حين بحث با اعضاي تيم، شكافها، نيازهاي گمشده، باگها و نقصهاي طراحي را پيدا كردهام. در صنعت نرمافزار، جايي كه برنامهنويسان معمولاً خود را با كامپيوترهايشان تنها ميسازند، صحبت كردن، به اشتراك گذاشتن و برگزاري جلسات وايتبرد به شدت كمككننده است.
فقط ننشينيد و كدنويسي كنيد؛ صحبت كنيد، گوش دهيد، فكر كنيد و با برنامهنويسان همكار خود وقت بگذرانيد. شركت در رويدادها نيز مفيد است. شما ممكن است نكات مفيد و تمرينهايي براي تبديل شدن به يك توسعهدهنده بهتر شبانه پيدا كنيد، مانند اين :-)
10- شركت در StackOverflow و انجمنها، كامنت گذاشتن در وبلاگها
اين نيز نوعي فعاليت است كه به شما كمك ميكند تا دانش خود را مرور كنيد. با به اشتراك گذاشتن دانش، اولين كسي كه بهرهمند ميشود، همان كسي است كه دانش را به اشتراك ميگذارد. از آنجا كه برنامهنويسي بسيار گسترده است، شما ممكن است بسياري از چيزهايي را كه بيش از سه ماه استفاده نكردهايد فراموش كنيد.
شركت در StackOverflow، پاسخ دادن به سوالات ديگران، كامنت گذاشتن در وبلاگها و انجمنها راهي خوب براي مرور دانش و اصلاح تصورات نادرست شماست.
با به نمايش گذاشتن دانش خود به ديگران، هم به آنها كمك ميكنيد و هم دانش خود را به چالش ميكشيد. بارها پيش آمده كه شخصي از دانش شما بهرهمند شده و در عين حال تصورات نادرست شما نيز اصلاح ميشود.
هر برنامهنويسي ميخواهد برنامهنويس بهتري شود، اما همه موفق نميشوند. علاوه بر استعداد طبيعي در برنامهنويسي و حل مسئله، تبديل شدن به يك برنامهنويس بهتر نياز به تلاش زياد، يادگيري مداوم و پشتكار دارد.
هرچه بيشتر در كارهاي واقعي مانند كدنويسي، طراحي، تست واحد و بررسي كد فعاليت كنيد، بهتر خواهيد شد. اگر در حال حاضر فقط ميخواهيد يك كار را انجام دهيد، پيشنهاد ميكنم به سراغ خواندن كد تميز (Clean Code) برويد.
برچسب:
،
ادامه مطلب
امتیاز دهید:
رتبه از پنج:
0
بازدید: