Gopher Academy
3.33K subscribers
915 photos
40 videos
279 files
1.96K links
🕸 Gopher Academy

🔷interview golang
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
#بدرد

برای مهندس نرم‌افزار بودن فقط برنامه نویس بودن و یا فقط یادگیری یکسری ابزار کفایت نمیکنه.

برای اینکه شما یک مهندس نرم افزار باشید راه طولانی ای رو پیشرو دارید و نیازه که یکسری توانایی فنی داشته باشید که باهم توی این پست بررسیشون میکنیم

- Programming Language
خب در وهله اول شما باید با زبان های برنامه نویسی اشنا باشید و یکیشون رو خوب بلد باشید و بتونید باهاش برنامه نویسید، این که واضحه…

از سمتی مفاهیم کلی برنامه نویسی رو هم بلد باشید بدور از یک زبان، در واقع برنامه نویسی رو بلد باشید نه یک زبان برنامه نویسی رو

- Software development
یکی از کارهای یک مهندس نرم افزار، توسعه یک نرم افزاره که یک فلوی طولانی از تحلیل تا نگهداری یک پروژه هستش، که باید بعنوان مهندس نرم افزار مسلط باشید به این قضیه.

- Maintaining a project
نگهداری یک پروژه و برنامه ریزی برای نگهداری اون از بالا اوردن اون پروژه خیلی مهم تره، شما باید بتونید یک پروژه رو بعد از توسعه نگه‌داری کنید.

- Testing
بعنوان یک مهندس نرم افزار، شما باید بتونید نرم افزاری که نوشتید رو تست کنید که ببینید درست کار میکنه یا نه و edge case هاش رو هم در نظر بگیرید و حالت های خاص رو هم مورد تست قرار بدید.
و البته باید بدونید که تست نوشتن خودش یک trade off هستش و باید ارزشش رو بسنجید.

- Database
خب شما تقریبا توی اکثر پروژه هاتون با دیتابیس ها و داده ها سر و کار دارید، پس باید دیتابیس هارو بشناسید، بتونید باهاشون کار کنید و ازشون توی پروژه هاتون بدرستی و در بهینه ترین حالت کار کنید، پس دیتابیسو فراموش نکنید.

- Algorithm & Data structure
یکی از مهم ترین هارد اسکیل هایی که باید بدونید الگوریتم و ساختمان داده هستش، تفکر الگوریتمی به تحلیل های شما کمک میکنه و باعث میشه که efficient تر کد بزنید.

- Network
شما باید بدونید که سیستمی که دارید توسعه میدید چطور کار میکنه، و احتمالا چون اکثر پروژه هاتون روی یکسری شبکه دارن بالا میان، بهتره که نتورک رو بدونید تا بهتون کمک کنه در روند توسعه نرم افزار.

- Problem solving
یک مهندس نرم افزار تقریبا بیشتر از هر چیزی با یکسری مسائل سر و کار داره، پس باید توانایی حل این مسائل رو هم داشته باشه، برای این مورد شما باید تمرین کنید، الگوریتم رو یاد بگیرید و خودتون رو در شرایط قرار بدید و به خودتون تمرین بدید.

- Debugging
علاوه بر اینکه شما باید ابزارهای دیباگ رو بدونید، نیازه که فلوی دیباگ رو هم یاد بگیرید که چطور باید یک باگ رو پیدا کنید و چطور اون رو فیکس کنید، پیدا کردن بعضی باگ ها اونطور که فکر میکنید ساده نیستن و باید شما بتونید بدرستی اون هارو در سریعترین زمان ممکن پیدا کنید.

- Software architecture
اگه شما مهندس نرم افزار هستید، باید بدونید معماری نرم افزارتون به چه صورتی بهینه تر خواهد بود، پس شما تا حدودی باید معماری نرم افزار هم بلد باشید
بدونید که چطور قطعات نرم افزارتون کنار هم قرار میگیرن و با چه معماری ای اگه کنار هم کار کنن بازدهی بهتری دارن.
البته بازدهی بیشتر منظور روند توسعه پذیری نرم افزاره

- Programming best practices
شما یکسری پارادایم و یکسری بست پرکتیس هم نیازه بدونید که چطور بهتر برنامتون رو بنویسید، مثل یکسری قوانین بابت کلین کد، دیزاین پترن ها، Object Design،  SOLID و...
برای تقویت این اسکیل ها کتاب های زیادی هستن که میتونید مطالعه کنید

- Documenting
مهندس نرم‌افزار معمولا ازش داکیومنت خواسته میشه، که چطور محصولش داره کار میکنه و اون داکیومنت میتونه به تیم محصول معمولا پرزنت بشه، اگه شما توانایی نوشتن داکیومنت ندارید چه برای بقیه برنامه نویس ها چه برای تیم محصول، بهتره برید دنبالش و این اسکیل رو یاد بگیرید.

- Analyzing Tasks
احتمالا شما بعنوان مهندس نرم افزار هرروز دارید با یکسری تسک سر و کله میزنید، پس نیازه که بتونید این تسک هارو تحلیل کنید، اون هارو خرد کنید به قطعات کوچک تر و اون هارو حل کنید، پس اینکه بتونید تسک هارو هم آنالیز کنید یک اسکیل خیلی ضروری و مهمه.

- Technology choosing
اینکه بعنوان یک مهندس نرم افزار تکنولوژی های مختلف رو بشناسید و در شرایط مختلف بتونید تصمیم بگیرید که استفاده از چه تکنولوژی ای به پروژه کمک میکنه هم خیلی مهمه!

#DevTwitter | <Reza/>

🕊 @gopher_academy
👍42🐳2
Gopher Academy pinned «موضوع دورهمی هفته چهارم در تاریخ 1 اردیبهشت؟»
User-level threads and Kernel-level threads

https://www.tutorialspoint.com/user-level-threads-and-kernel-level-threads

🕊 @gopher_academy
👍4
Difference between User Level thread and Kernel Level thread


🕊 @gopher_academy
👍6🎉1
how does aws build system work?

🕊 @gopher_academy
👍1🍾1
📡دورد به همگی دوستان

❤️کسی اگر دوس داره اشتراک دانش داشته باشه (گولنگ)

و اون رو توی چنل مون برای همه به اشتراک بزاره کافی به من پیام بده 👇🏼

〽️ @mrbardia72

#admin


🕊 @gopher_academy
🫡4
Git Branch and Commit Flow

Branch: https://lnkd.in/d9ERuKet
Commit: https://lnkd.in/dneNTUUa


🕊 @gopher_academy
👍2👾1
How is a SQL statement executed in the database?

🕊 @gopher_academy
👇🏼👇🏼👇🏼👇🏼👇🏼
👍2🐳1
Step 1 - A SQL statement is sent to the database via a transport layer protocol (e.g.TCP).

Step 2 - The SQL statement is sent to the command parser, where it goes through syntactic and semantic analysis, and a query tree is generated afterward.

Step 3 - The query tree is sent to the optimizer. The optimizer creates an execution plan.

Step 4 - The execution plan is sent to the executor. The executor retrieves data from the execution.

Step 5 - Access methods provide the data fetching logic required for execution, retrieving data from the storage engine.

Step 6 - Access methods decide whether the SQL statement is read-only. If the query is read-only (SELECT statement), it is passed to the buffer manager for further processing. The buffer manager looks for the data in the cache or data files.

Step 7 - If the statement is an UPDATE or INSERT, it is passed to the transaction manager for further processing.

Step 8 - During a transaction, the data is in lock mode. This is guaranteed by the lock manager. It also ensures the transaction’s ACID properties.

🕊 @gopher_academy
👍1🎉1
#کدبوک

برای اندازه گیری ریسک و کنترل این کتاب رو توصیه میکنم

#DevTwitter | <Alireza/>

🕊 @gopher_academy
🫡2👾1
👎21
Gopher Academy pinned Deleted message