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

در پست قبلی گفتیم که یک برنامه نویس موفق مانند یک BussinessMan به حرفه خود نگاه می کند. یعنی روی کاری که می خواهد انجام دهد و بازار هدف آن، تمرکز می کند و همواره به اینکه چطور می تواند خدمات خود را بهتر کند و چطور می تواند کاری خاص را برای برآورده کردن نیاز گروه خاصی از مردم انجام دهد فکر می کند.

برنامه نویس های موفق، همیشه یک جواب صریح و مشخص برای این سوال که چه کاری از دستشان بر می آید دارند و این مهم ترین ویژگی آنهاست که باعث می شود در مصاحبه ها و قرارداد های کاری همیشه پیروز شوند.

امروز می خواهم یک سوال مهم از شما بپرسم، حالا که به زندگی خود مانند یک بیزنس نگاه می کنید، در مسیر زندگی حرفه ای خود می خواهید به کجا برسید ؟ یا به عبارت دیگر آینده را برای خود چه شکلی می بینید؟

هیچ دو نفری مثل هم نیستند، ممکن است هدف های من با شما فرق داشته باشد، پس شما باید بدانید که چه هدفی دارید و برای چه چیزی باید تلاش کنید؟

چگونه اهدافمان را تعیین کنیم ؟

حالا که پذیرفتیم اولین قدم موفقیت در برنامه نویسی هدف گذاری است، باید ببینیم که چطور می توانیم این کار را انجام دهیم.

شروع کردن با یک هدف بزرگ آسان است، اما هر چه اهداف ما کوچک تر باشند، رسیدن به آنها امکان پذیر تر خواهد بود. پس اولین کاری که باید انجام دهیم این است که یک هدف بزرگ را به چندین هدف کوچک تر بشکنیم، این کاری است که برنامه نویس ها هر روز برای رسیدن به اهداف خود انجام می دهند. یک هدف بزرگ خیلی مشخص و شفاف نیست، چون ما نمی توانیم چیزی را که خیلی با ما فاصله دارد را تصور کنیم، پس باید هدف هایمان را تا جایی بشکنیم که بتوانیم دقیقاٌ توضیح دهیم که چه کاری می خواهیم انجام دهیم و برای انجام این کار چقدر زمان احتیاج داریم.

شکستن اهداف

داشتن یک هدف بزرگ مثل داشتن یک نقشه راه است، مثلاً من اگر بخواهم از منزل به سر کار بروم، باید اول از خانه بیرون بیایم، به ایستگاه تاکسی رفته و با تاکسی به نزدیک ترین ایستگاه مترو محل زندگیم بروم،(برای این کار به نیم ساعت زمان احتیاج دارم) نزدیک ترین مسیر رسیدن به محل کار را انتخاب کرده (یا اگر نیاز است، یک خط عوض کنم ) و … تا در نهایت به محل کار خود برسم.(این هم نیم ساعت زمان می برد، پس جمعاً برای رفتن به محل کار به یک ساعت زمان نیاز دارم). این یک مثال ساده بود، و دو مرحله بیشتر نداشت، اما باور کنید یا نکنید، باید به شما بگویم که حتی بزرگ ترین هدف ها هم با شکستن به اهداف کوچک تر به همین سادگی قابل انجام هستند.

به این فکر کنید که در نهایت می خواهید با زندگی حرفه ای خود به کجا برسید، می خواهید یک مدیر شوید و یا یک شرکت برنامه نویسی بزرگ داشته باشید؟ می خواهید کار آفرین باشید و محصول خودتان را درست کنید و به بازار عرضه کنید و یا می خواهید عضو یک تیم برنامه نویسی شوید ؟ من دوست دارم، عضو یک تیم حرفه ای باشم و از تمام توانایی هایم برای درست کردن بهترین و کارآمد ترین برنامه های کامپیوتری استفاده کنم.

این واقعاً به شما بستگی دارد که هدف بزرگ خودتان را چطور تعریف کنید و در ۵ یا ۱۰ سال آینده چه جایگاهی را برای خود متصور شوید. حالا بروید و کمی زمان بگذارید تا بتوانید هدف های بزرگتان را مشخص کنید. این واقعاً مهم است.


مسیـر یادگیـری Net Framework.

مسیـر یادگیـری Net Framework.

مهم نیست که برنامه نویس وب باشید یا دسکتاپ، هر برنامه نویس دات نت باید  با نحوه کار دات نت و امکانات آن آشنایی داشته باشد.

این مسیر آموزشی برای برنامه نویس هایی است که قبلا با سی شارپ کار کرده اند و می خواهند دیدگاه عمیق تری نسبت به دات نت پیدا کنند.

 

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

به عقیده من برای یادگیری برنامه نویسی باید دو چیز را فراموش نکنیم. ۱٫ قدرت زمان ۲٫ تمرکز روی یک موضوع خاص و شاخه شاخه نشدن

قدرت زمان

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

تمرکز

بزرگترین معضل دنیای امروز و جود انبوهی از اطلاعات است، که اگر درست از آنها استفاده نکنیم مجبوریم در آن ها غرق شده و از بین برویم. برای اینکه زمان را از دست ندهیم و از موضوع اصلی غافل نشویم، یک مسیر آموزشی برای تبدیل شدن به یک برنامه نویس حرفه ای سی شارپ را به شما پیشنهاد می کنم.
مسیر آموزش برنامه نویسی سی شارپ
امیدوارم با تمرکز و استفاده مناسب از وقت و زمان حداکثر استفاده را از این مسیر آموزشی ببرید. اگر برای هر کدام از موضوعات این مسیر آموزشی نیاز به راهنمایی داشتید در این قسمت مطرح کنید. ممکن است در مسیر آموزش به موضوعات مختلفی بر بخورید و تمایل داشته باشید که در مورد آنها هم اطلاعات بدست بیاورید، اما راز موفقیت شما به تمرکز روی موضوعات اصلی و شاخه شاخه نشدن است. موفق باشید. لطفا این موضوع را با افراد علاقه مند مثل خودتان به اشتراک بگذارید. در پست های بعدی مسیر تبدیل شدن به ی برنامه نویس حرفه ای دات نت و مسیر تبدیل شدن به یک برنامه نویس حرفه ای ASP.NET را با شما به اشتراک می گذارم.


آموزش قدم به قدم AngularJS (قسمت دوم)

در درس قبلی سری آموزش قدم به قدم AngularJS یک نمونه ساده Hello World را دیدیم و اساس کار Angular را یاد گرفتیم. در این درس چگونگی کار با event ها و validation ها در AngularJS را خواهید دید. ما ۵ قدم را انجام دادیم، پس بیایید با قدم ششم شروع کنیم.

ادامه مطلب


آموزش قدم به قدم AngularJS (قسمت اول)

AngularJS (إنگیولر‌جِی‌اس) یکی از مشهورترین و بهترین فریم‌ورک‌های جاوااسکریپت است. ویژگی قدرمند Data Binding دوطرفه در AngularJS کار کردن با اشیای JavaScript و HTML را بسیار ساده کرده است. دلیل اصلی پیدایش AngularJS بایندیگ و بایندینگ و بایندیگ بوده است. AngularJS یک بایندیگ فریم‌ورک است که رابط کاربری HTML را به اشیای JavaScript بایند می‌کند. بایندینگ در انگولار جی اس با انجام این کار، حجم زیادی از کدهایی که برای ایجاد ارتباط بین HTML و اشیای JavaScript نوشته می‌شد کاسته شده است. از آنجا که از AngularJS از الگوهای طراحی MVC و MVVM، به طور همزمان پشتیبانی می‌کند، آن را به عنوان MVW(Model-View-Whatever) و یا “مدل، ویو و هر چیز دیگری” می‌شناسند. Mv*

قدم اول : درست کردن یک صفحه HTML ساده

می‌خواهیم با هم یک پروژه ساده که فقط شامل HTML ،CSS و JavaScript است را درست کنیم، برای اینکار ابتدا یک پوشه در یک مسیر دلخواه درست کنید، سپس Visual Studio را باز کرده و روی File->Open->Website مانند تصویر زیر کلیک کنید. وقتی که شما یک پوشه را به عنوان Website باز می‌کنید، Visual Studio فایل‌های اضافی مانند web.config و global.asax و … را به پروژه اضافه نمی‌کند. باز کردن وب سایت و مسیر پوشه‌ای که درست کرده بودید را مانند شکل زیر به آن بدهید. 2 کار شما تمام شد، شما توانستید یک پروژه بسیار ساده درست کنید، که هیچ چیزی در آن وجود ندارد. این فقط یک پروژه خالی است که فایل های مخصوص مایکروسافت هم در آن دیده نمی‌شود. 3 بیایید یک صفحه HTML ساده درست کنیم و نام آن را HelloWorld.html بگذاریم. 3 NewHTML در این صفحه HTML یک TextBox درست می‌کنیم و اسم آن را txtHello می‌گذاریم، سپس این TextBox را به تابع جاوا اسکریپتی به نام Hello بایند خواهیم کرد. و حالا می‌خواهیم از AngularJS برای بایند کردن این دو موجودیت استفاده کنیم.

قدم دوم : اضافه کردن AngularJS به پروژه

حالا که رابط کاربری HTML و کلاس های JavaScrip را در جای خود قرار دادیم، بیایید اول AngularJS را دانلود کنیم. برای این کار روی پروژه راست کلیک کرده و گزینه Manage NuGet Packages را مانند تصویر انتخاب کنید. MangeNuGet Packages کلمه AngularJS را در کادر جستجو وارد کنید، سپس AngularJS Core را انخاب کرده و روی دکمه Install کلیک کنید. در لیست ظاهر شده چندین AngularJS وجود دارد که Extension های AngularJS هستند. که به تدریج در پست های بعدی راجع به آنها صحبت خواهیم کرد. مهم ترین آن‌ها Angular core است، روی آن کلیک کنید تا به پروژه شما اضافه گردد. NuGet پس از نصب، شما می‌توانید فایل های Angular را در پوشه Scripts ببینید. AngularJS Scripts; حالا با استفاده از تگ script مانند تصویر زیر به فایل Angular (به خطوط Bold شده نگاه کنید) Reference دهید.

قدم سوم : اضافه کردن عبارت های ng-controller و ng-model

حالا برای اتصال کلاس HelloWorld با کادر متنی HTML به دو چیز نیاز دارید : اول، درست کردن یک نمونه از کلاس HelloWorld دوم، تنظیم خاصیت شی HelloWorld به TextBox برای این کار ما به ng-controller و ng-model نیاز داریم. به ng-controller و ng-model در إنگیولر‌جِی‌اس directive گفته می‌شود. به یاد داشته باشید که إنگیولر‌جِی‌اس یک زبان برنامه‌نویسی اعلانی است. اعلانی یعنی اینکه شما فقط directive ها را اضافه می‌کنید، و بدون اینکه نیاز باشد چگونگی انجام آن کار را به آن بگویید کاری که می‌خواهید را برای شما انجام می‌دهد. دایرکتیو ng-controller یک شی از کنترولر HelloWorld درست کرده و آن را به تگ div بایند می‌کند، و ng-model مقدار فیلد input را به پراپرتی txtHello بایند می‌کند. همانطور که در تصویر زیر نشان داده شده، برای نمایش پراپرتی txtHello روی صفحه نمایش، به {{عبارت مورد نظر}} نیاز داریم. بنابراین وقتی چیزی را در TextBox تایپ می‌کنیم، در تگ div نمایش داده خواهد شد.

قدم چهارم : ng-app و مفهوم scope

حالا اگر دایرکتیو ng-controller نمونه‌ها(instance) را درست می‌‌کند، اگر مانند کد پایین، چندین دایرکتیو ng-controller در صفحه HTML خود داشته باشید چه اتفاقی خواهد افتاد. یک instace درست می‌کند یا چند instance ؟ درباره این موضوع فکر کنید… بدیهی است که شما به عنوان یک برنامه‌نویس، دوست دارید instance های مختلف از HelloWorld داشته باشید و بتوانید به هر دو div موجود در صفحه HTML بایند کنید. این دقیقاً همان کاری است که AngularJS برای ما انجام می‌دهد. اما حالا که دو instance متفاوت در یک صفحه HTML داریم، محدوده استفاده (یا scope ) این دو instance چگونه تعیین می‌شود. آیا در تمام صفحه HTML قابل استفاده است ؟ محدوده استفاده (یا scope ) این دو instance با تگ <div> آغاز شده و با تگ </div> به پایان می‌رسد.AngularJS وقتی به دایرکتیو ng-controller برخورد می‌کند، این instance ها را به صورت خودکار می‌سازد. حالا اگر بخواهیم این instance ها با هم ارتباط داشته باشند و داده هایشان را با هم به اشتراک بگذارند باید چه کار کنیم ؟ ما چیزی به نام ng-app داریم که این کار را برای ما انجام می‌دهد. ng-app یک شی درست می‌کند که از طریق آن تمام controller ها را کنترل می‌کند و به آن‌ها کمک می‌کند تا بتوانند داده‌هایشان را با هم به اشتراک بگذارند.

قدم پنجم راه اندازی پروژه و دیدن نتایج

خوب، حالا که همه تنظیمات را انجام دادیم، برای شروع کار پروژه Angular به مقداری کد احتیاج داریم. ما می‌خواهیم َAngular اشیا controller و ng-app را بسازد و بایندینگ را برای ما انجام دهد. بنابراین به کد هایی که در پایین می‌بینید احتیاج داریم. اول یک instance از app می‌سازیم، سپس یک شی controller به app اضافه می‌کنیم. همین بود، کلید Ctrl+F5 را فشار دهید و از بایندیگ خودکار لذت ببرید، حالا وقتی چیزی را در TextBox وارد می‌کنید، عبارت پایین به صورت خودکار Update می‌شود. Completed کد نهایی به صورت کامل موضوع بعدی چیست؟ در درس بعدی در مورد event ها و validation ها در Angular صحبت خواهیم کرد.

طرز فکر یک برنامه نویس موفق

برنامه نویس خوب

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

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

بهتر است به کارفرمایتان مانند یک مشتری نگاه کنید که نرم افزار هایی که تولید می‌کنید را از شما خریداری می‌کند. در این صورت شما فقط یک مشتری دارید و تمام درآمد شما از آن تامین خواهد شد، این طرز فکر به شما کمک می کند که از وابستگی بیرون بیایید و احساس قدرت کنید.(در واقعیت هم، درآمد خیلی از شرکت های بزرگ، تنها از طریق یک مشتری فراهم می شود.) این اولین کاری است که باید در زندگی حرفه ای خود انجام دهید، تغییر طرز فکر وتبدیل شدن از یک خدمتکار به یک کاسب.

چطور مانند یک کاسب فکر کنیم؟

حالا به حرفه خود به عنوان یک کسب و کار فکر کنید، آیا واقعاً کسب و کار خوبی دارید. شما باید به این فکر کنید که در این حالت باید چطور فکر کنید تا کسب و کار موفقی داشته باشید.

بیایید با این سوال شروع کنیم، چه چیزهایی یک کسب و کار را به وجود می آورند؟ اکثر کسب و کار ها به چند چیز کوچک احتیاج دارند تا در کار خود موفق شوند، اول از همه شما باید یک محصول یا خدمت برای ارائه داشته باشید، وقتی در یک کسب و کار محصولی وجود نداشته باشد، چه چیزی باید فروخته شود تا از آن پولی بدست بیاید ؟ بله محصول یک برنامه نویس برنامه ای است که می نویسد.

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

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

خیلی از برنامه نویس ها یک رزومه درست کرده و برای شرکت ها ارسال می‌کنند، اما اگر بخواهیم به زندگی حرفه ای خود مانند یک کسب و کار نگاه کنیم، آیا این بهترین و تنها راه ممکن است؟ البته که نه. اکثر شرکت ها دریافته اند که چطور می توانند مشتریانی را پیدا کرده تا محصول یا خدمات آنها را خریداری کنند. آنها به صورت یک به یک دنبال مشتری های خود نمی روند!

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


باور پنجم برای بر باد دادن رویای برنامه نویسی

چرا فکر میکنی که عاشق برنامه نویسی هستی؟ چه چیزی باعث مشه که به این حرفه علاقه مند بشی؟ pkuh امروز میخوام آخرین نکته رو بگم، این یکی بسیار مهم هم هست : باور اینکه تنها چیزی که مهمه برنامه نویس شدنه!! یک بار یک تیکه فیلم رو دیدم که دوستای زیادی  با هم بودن، اونا میخواستن از کوه بالا برن، کوه بسیار بلندی بود، اونها عرق ریزان و باسختی فراوان از کوه بالا رفتن و در نهایت به بالای کوه رسیدن… خیلی خوشحال بودن و با هم اون بالا جشن گرفتن، چند دقیقه بعد یکی به دیگری نگاه کرد و گفت، اوکی، بریم پایین !! برنامه نویس شدن پایان کار نیست، اگه بتونی همین حالا که داری برای برنامه نویس شدن تلاش میکنی، از هر قدمی که برمی داری احساس لذت کنی و براش جشن بگیری و اگه اشتباه کردی، مسیرت رو عوض کنی و ازش چیز یاد بگیری، مطمئناً برنامه نویس موفقی میشی. خوب، پنج نکته:  باور برنامه نویس شدن یک شبه، باور اینکه شخص دیگه ای میتونه کاملا برنامه نویسی رو به شما یاد بده، باور اینکه وقتی رشد کردی دیگه نمیخواد تلاش کنی، باور اینکه اشتباه از شخص دیگه ای بوده ، و باور اینکه تنها برنامه نویس شدن مهمه، باور کن، اگر اینکارها رو بکنی، رویای برنامه نویس شدن رو به باد دادی!

باور اول باور دوم باور سوم باور چهارم


چهارمین باور غلط در مقابل برنامه نویس شدن

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

مسئول رویاهای خودت باش.


سومین باور غلط که مانع برنامه نویس شدن شما می شود.

در ادامه موضوع باور های غلط، که مانع برنامه نویس شدن شما می شود، امروز می خواهم سومین باور اشتباه را با شما در میان بگذارم. stable باور سوم: این نکته خیلی ظریف ولی بسیار مهم است. تصمیم بگیر که مستقر شوی، هنگامی که رشد تو تضمین شده است، بنابراین هنگامی که برنامه نویس شدی، باید یک تیم خوب جمع کنی، و بازدهی آنها را افزایش دهی، و همه چیز الان منظم است– زمان مستقر شدن فرا رسیده. وقتی من اولین کتابم را منتشر کردم، خیلی خیلی زحمت کشیدم تا آن را در سایت کتاب راه توزیع کنم. نتیجه اینکه، بیش از۴۰ هزار نسخه دانلود شد. هنگامی که من جلد بعدی کتاب را نوشتم، دیگر برخی اثرات (کتاب قبلی) تضمین شده بود. حتی اگر من تلاش کمی می‌کردم، فروش خوب بود. اما خوب هرگز خوب نیست. هنگامی که در جهت قله میروی، نیاز داری که سخت‌تراز همیشه کار کنی و قله دیگری برای خودت پیدا کنی. شاید اگر من کمی تلاش کرده بودم، چند صدهزار نفر دیگر آن را می خواندند، این خوب بود. اما اگر من سخت‌تر از همیشه کار می کردم، می توانستم این عدد را به میلیون‌ها برسانم. به همین دلیل است که تصمیم گرفتم، با کتاب جدیدم به همه استان‌های کشور بروم. من حتی می‌توانم قله بالاتری را از همین حالا ببینم. به هیچ وجه زمانِ استقرار نیست.

ادامه دارد