نوشته‌ها

کار در خانه 4
,

برنامه‌نویسی در خانه (آزاد کار یا Freelancer) قسمت 1

میخواهم آزاد کار(Freelancer) شوم چکار باید بکنم؟(قسمت 1)

 

کار در خانه 4

 

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

تو این نوشتار میخوام به شما نکاتی را بگم که مطمئنا اگه تصمیم گرفتید تو خونه و بصورت آزاد کاری کار کنید خیلی میتونه بهتون کمک کنه.

 

 تخصص خود را انتخاب کنید.

 

خوشبختانه شما میدانید که د رچه حوزه کاری میخواهید کارتان را شروع کنید.

اگر این حرف من درسته میتونید از این مرحله رد شوید.یا اگر کاملا مطمئن نیستید یکبار دیگر بتوانید تصمیم خود را بررسی کنید.

برای آندسته از کسانی که باید تصمیم بگیرند که باید تصمیم بگیرند که آزاد کاری‌شان را روی چه مهارت و تخصصی پایه ریزی میکنند.

 

در این اینجا نکاتی را باید مد نظر قرار دهیم:

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

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

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

باید به خاطر داشته باشید که آزاد کاری جاده ای پر از موانع است و آخرین چیزی که شما میخواهید اینست که به خودتان فشا ر بیاورید  تا کاری که ازش متنفر هستید را انجام دهید.

دوم اینکه ، فرض کنید شما یکسری مهرات دارید که می‌توانید برای شروع آزادکاری از آنها استفاده کنید. در این صورت نکته زیادی برای گفتن باقی نمی‌ماند.

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

 

اگر تخصص شما قابل تحمل نیست شما دو گزینه دارید:

اول اینکه آزاد کاری را فراموش کرده و به دنبال یک شغل ثابت باشید.من خودم شخصا این یکی را انتخاب می‌کنم.

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

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

خودتان شروع به تلاش کنید.

نمونه کارهای خودتان را بسازید.

 

اولین کاری که باید بکنید اینه که باید اول نمونه کاری از خودم داشته باشید.

به نظر می‌رسه این منطقی‌ترین مرحله از کار ه. ولی افراد زیادی هستند که این اشتباه را بارها و بارها تکرار می‌کنند و از خودشان میپرسند که چرا ما نمی‌توانیم هیچ مشتری پیدا کنیم.

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

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

 

اگر نمی‌توانید نمونه‌هایی که کار شما را به نمایش بگذارید تولید کنید باید شکست را قبول کنید.یک نمونه کاری می‌تواند به اندازه خود شما در بازاریابی محصولتان سازنده باشد.

ارائه یک کار بی‌کیفیت یا احتمالا هیچ چیزی، شما را به خطر خواهد انداخت و کار شما را به شکست منجر خواهد کرد.

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

 

اینجا دو گزینه وجود دارید:

اول اینکه ،خدمات خودتان را رایگان ارائه دهید، به عنوان یک داوطلب کار کنید و سپس نتایج کار را در نمونه کاری خود قرار دهید.

دوم اینکه، می‌توانید یک پروژه جانبی برای خودتان در مواقع بیکاری درست کنید.هیچ یک از این روشها جذاب نیستند ولی بعضی مواقع ما مجبوریم یک مقداری فداکاری کنیم تا به چیزی که می‌خواهیم برسیم.

نقطه روشن انجام پروژه جانبی یا کار مجانی اینست که شما یک شانسی برای تمرین کردن مهارتهایی که می‌خواهید در آینده بفروشید دارید.

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

 

قبل از اینکه برویم سراغ نکته بعدی ،این کارو انجام ندید. چه کاری؟

 تعیین کمترین قیمت و کار کردن دیوانه‌وار و البته عدم وجود نمونه کاری .

فکر می‌کنم لازم نیست بهتون بگم که چقدر متقاعد کردن مشتریان  درمورد مهارتتان بدون ارائه یک نمونه کاری سخته.

خواهش می‌کنم شما این اشتباهات را انجام ندهید.

نمونه کاری شما مثل کارت اعتباری آنلاین شما می باشد.

 

 

,

برای اینکه بتوانیم پروژه اندرویدی بگیریم چه مهارتهایی نیازمندیم؟

برای اینکه بتوانیم پروژه اندروید بگیریم چه مهارتهایی نیازمندیم؟

 

 

 

سوال اصلی اینه :

 

برای گرفتن پروژه اندرویدی چه چیزهایی یاد بگیریم؟

 

این سوال ممکنه سوال ذهن خیلی از دوستانی که تازه شروع کردن و یا برنامه نویسی بلدن و به فکر افتادن که برنامه نویسی اندروید یاد بگیرن تا بتونن پروژه اندروید بگیرن یا اپلیکیشن های خودشونو تولید کنن و واسه فروش تو کافه بازار و google play  و مارکتهای دیگه بزارن.

 

اگه تصمیم گرفتید اندروید کار کنید سمت xamarin  و basic4android  نرید؛

سوالا اینا هستن :

 

چقدر باید به زبان جاوا تسلط داشته باشیم؟

 

و به جز کدهای مربوط به اندروید و مفاهیم موجود تو برنامه نویسی موبایل به چه ابزار ها و مهارتهای دیگه‌ای نیازمندیم؟

 

اگه بخواید تو eclipse یا اندروید استودیو برنامه نویسی کنید که پیشنهاد من اندروید استودیوست.

بسته به اینکه تو چه سطحی میخواید پروژه بنویسید تو اندازه توانایی شما در زبان جاوا تعیین کنندست.

بالاخره برنامه‌نویسی اندروید بر پایه زبان جاوا بنا شده پس دونستن مفاهیم پایه‌ای و syntax جاوا ضروریه. ولی تو بعضی پروژه‌های ساده مثل نوشتن کتاب؛ یا اپلیکیشن برای یه وبسایت ساده یا وبلاگ و برنامه‌های ساده خیلی نیاز نیست تو جاوا, برنامه‌نویس حرفه‌ای باشید.

 

ولیکن اگه بخواید یه برنامه‌نویس تمام عیار باشید که از پس هر پروژه‌ای بر بیایید باید به جاوا مسلط باشید.

 

و اما سوال دوم:

چه ابزار ها و مهارتهای دیگه‌ای نیازمندیم؟

 

 

نه تنها تو برنامه ‌نویسی موبایل؛ بلکه تو هر پروژه دیگه‌ای که دیتابیس داره باید کم و بیش Sql  بلد باشید تا از پس قسمت ارتباط با دیتابیس بر بیایید.

پس مفاهیم اولیه پایگاه داده و کمی دونستن زبان sql  کفایت میکنه.

 

از اونجایی که بیشتر وبسایتهای موجود یا با php  نوشته شدن یا مثل وردپرس از  php استفاده شده بلد بودن php  میتونه شما رو از برنامه نویس‌های وب بی‌نیاز کنه.

Php زبان برنامه‌نویسی بسیار ساده‌اییه و کسی که قبلا جاوا کار کرده یاد گرفتن php واقعا کار راحتیه.

 

بعد از این زبانهای برنامه‌نویسی که اسم بردم بلد بودن مفاهیم سرور, آپ کردن و down کردن سرور هم میتونه خیلی بهتون کمک کنه.

بازار کار کدام زبان برنامه نویسی بهتراست؟

بازار کار کدام زبان برنامه نویسی بهتراست؟

 

 

 

این سوالو جور دیگه‌ای هم میشه  پرسید:

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

 

خوب البته این سوال یه کم جنراله؛ کلا اگه بخوام بگم برنامه نویس نه تو ایران و نه تو هیچ کجای دنیا بیکار نمیمونه.دلیلش اینه که عصر تکنولوژیه و نیاز برای برنامه‌نویس زیاده.

 

بخصوص زبانهای برنامه نویسی مرتبط با موبایل و وب سایت.

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

اون سالی که من کارو شروع کردم فقط با یه پروژه دانشجویی تونستنم تو اولین شرکتی که رفتم واسه مصاحبه, استخدام شدم.

ولی الان اوضاع فرق کرده نه اینکه کار کمتر باشه نه؛زبانهای برنامه نویسی که در حال حاضر مشتری داره فرق کرده.

از دو جنبه باید به موضوع نگاه کرد یکی بازار کار گسترده دوم پولساز بودن اونه.

 

تو این بازار اگه C#.NET  کسی بلد باشه بیکار نمیمونه و میتونه یه حقوق نرمال داشته باشه.که البته هر چقدر حرفه‌ای تر باشی و رزومه ‌ات پر بار تر باشه خواهان بیشتری داری و پول بیشتری هم بهت میدن.

تو حوزه وب زبانهایی مثل PHP  هم بازار نسبتا خوبی داره ولی حقوقش کمتره.

 

تخصص هایی مثل ادمین دیتابیس چه اراکل و چه SqlServer  شاید کمتر خواهان داشته باشه به این دلیل که هر سازمان به یه ادمین بیشتر احتیاج نداره؛ درسته کمتر خواهان داره, ولی متخصصش هم کمه و راحت میشه کار گیر آورد و حقوق خوبی هم برای یه ادمین دیتابیس میدن.

 

 

و اما زبان برنامه نویسی مورد علاقه خودم و تخصص خودم جاوا(JAVA)  .

که همین تخصص هم باعث شد بیام سراغ برنامه نویسی موبایل و برنامه نویسی اندروید؛ که هم  بازار خوبی داره هم پول خوبی میدن .

هم میتونید پروژه خوب بگیرید و هم میتویند خودتون اپلیکیشن تولید کنید و تو کافه بازار و googleplay  و جاهای دیگه به فروش بگذارید.

 

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

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

برنامه نویس شدن بدون تحصیلات

آیا برای برنامه‌نویس شدن باید تحصیلات دانشگاهی مرتبط داشته باشم؟

 

 

 

 

جواب این سوال یه ” نه ” بزرگه.

 

ولی چرا جواب من برای این سوال نه ست؟

 

در طول سالهای زیادی که برنامه نویس بودم و تو جمع برنامه‌نویس‌های زیادی کار کردم و تو شرکتهایی که مشغول کار بودم؛

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

 

یکی از بهترین برنامه‌نویس‌هایی که تا حالا دیدم رشته دانشگاهیش شیمی بوده.  یعنی جوری برنامه نویسی میکرد که انگار زبان مادریشه.

ازش پرسیدم که چطوری تونستی بدون اینکه کامپیوتر خونده باشی اینقدر برنامه‌نویس خوبی بشی؛ میگفت من عاشق برنامه‌نویسی بودم.

از همکارای دیگه‌ا‌م بودن که صنایع خونده بودن.

 

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

اصلا میخوام تو این نوشته چی بگم و منظورم از نوشتن این چند خطه چیه؟

اگه دانشگاه رفته باشید حتما دیدید که 70 درصد دروس دانشگاهی هیچ ارتباطی به اسم اون رشته تحصیلی نداره. بقییه درسها هم یه سری مطالب تئوریه که هیچ استفاده‌ای تو مهارتی که قراره تو آینده و تو بازار کار به کارتون بیاد, نداره.

 

من خودم زبانهای برنامه نویسی که یاد گرفتم و کلا هر چیزی که یاد گرفتم بدون وابستگی و بدون اینکه از درسهای دانشگاهی استفاده‌‌ای بکنم بوده.

 

به نظر من تنها چیزی که نیاز دارید برای اینکه برنامه‌نویس بشید علاقه‌ست و پشتکار .

 

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

زمان کمتری هم میخواد. و میشه از طریق اینترنت با فیلمهای آموزشی زیادی که وجود داره یاد گرفت.

 

پس اگه دانشجو هستید صرفنطر از رشته دانشگاهیتون برنامه نویسی یاد بگیرید.

 

اگه دیپلم گرفتید و میخواید یه حرفه یاد بگیرید که سریعتر مشغول کار بشید برنامه نویسی یاد بگیرید.

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

از لحظه ای که برنامه نویسی یاد گرفتید دیگه تا آخر عمر نگران بیکار بودن نخواهید بود. چون این شمایید که واسه شرکتها ناز میکنید.

هر وقت خواستن تعدیل کنن برنامه نویسها آخرین کسایی هستن که اخراج میشن. چرا؟

چون پیدا کردن دوباره یه برنامه نویس خوب براشون خیلی سختتره.

 

اصلا گوش به این حرفهایی که میگن برنامه نویسی یه استعداد بخصوصی میخواد ندید. همه میتونن برنامه نویسی بشن .

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

 

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

پس این حرفای منو پشت گوش نندازید و این لحظه رو غنیمت بشمرید.

تو یه مطلب دیگه درباره اینکه چه زبانهای برنامه نویسی یاد بگیرید که راحتتر کار گیر بیارید براتون نوشتم. حتما اونو بخونید.

چگونه یک اسلایدر به اکتیویتی اضافه کنیم؟

چگونه یک اسلایدر به اکتیویتی اضافه کنیم؟

ابتدا کتابخانه‌های مورد نیاز برای نوشتم اسلایدر را به اپلیکیشن اضافه می‌کنیم:

تو فایل gradle کتابخونه‌ها رو به ترتیب یر اضافه می‌کنیم:

compile “com.android.support:support-v4:+”
compile ‘com.squareup.picasso:picasso:2.3.2’
compile ‘com.nineoldandroids:library:2.4.0’
compile ‘com.daimajia.slider:library:1.1.5@aar’

با اضافه کردن این کتابخونه‌ها اندروید استودیو نیاز به دانلود کتابخونه‌هایی داره که تو sdk  وجود نداره.پس فراموش نکنید حتما فیلتر شکنتون رو اجرا کنید.

 

بعد از اضافه کردن کتابخونه ها باید permission  های مورد نیاز را در فایل AndroidManifest.xml تعریف کنید:

 

<uses-permission android:name=”android.permission.READ_EXTERNAL_STORAGE” />
<uses-permission android:name=”android.permission.INTERNET” />

 

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

<com.daimajia.slider.library.SliderLayout
android:id=”@+id/slider”
android:layout_width=”match_parent”
android:layout_height=”200dp” />

 

و در MainActivity.java   ؛ SliderLayout  را که در فایل Layout اضافه کرده بودیم تعریف می‌کنیم:

SliderLayout sliderShow = (SliderLayout) findViewById(R.id.slider);
TextSliderView textSliderView = new TextSliderView(this);

 

 

تو کد بالا ابتدا SliderLyout و TextSliderView را تعریف می‌کنیم و شرح تصویر و خود تصویر را بهش اضافه می‌کنیم:

textSliderView
.description(“Game of Thrones”)
.image(“http://images.boomsbeat.com/data/images/full/19640/game-of-thrones-season-4-jpg.jpg”);

sliderShow.addSlider(textSliderView);

حالا کافیه یه آرایه تعریف کنیم و آدرس تصاویر و نام تصویر را داخل آرایه بریزیم و با یم حلقه طبق مثال بایل به SliderView ‌ی که تعریف کردیم اضافه کنیم. کد کامل را براتون میزارم:

 


import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.daimajia.slider.library.SliderLayout;
import com.daimajia.slider.library.SliderTypes.BaseSliderView;
import com.daimajia.slider.library.SliderTypes.TextSliderView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity implements BaseSliderView.OnSliderClickListener{
ArrayList<String> urlPics;
ArrayList<String> names;
@Override
protected void onCreate(Bundle savedInstanceState) {
urlPics = new ArrayList<>();
names = new ArrayList<>();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SliderLayout sliderShow = (SliderLayout) findViewById(R.id.slider);
urlPics.add(“http://webenik.com/wp-content/uploads/2017/11/android1kjh.jpg”);
urlPics.add(“http://webenik.com/wp-content/uploads/2017/11/Programming-for-Kids-e1465336734364.jpg”);
urlPics.add(“http://webenik.com/wp-content/uploads/2017/12/51ea53b6f14e2a5ea05d98834444.jpg”);
urlPics.add(“http://webenik.com/wp-content/uploads/2017/11/programming-mistakes.jpg”);

names.add(“android”);
names.add(“Kids”);
names.add(“design”);
names.add(“pack”);

for(int i =0  ;i<urlPics.size();i++){
TextSliderView textSliderView = new TextSliderView(this);
textSliderView.image(urlPics.get(i))
.setScaleType(BaseSliderView.ScaleType.Fit)
.setOnSliderClickListener(this);
textSliderView.bundle(new Bundle());
textSliderView.getBundle()
.putString(“extra”,names.get(i));
sliderShow.addSlider(textSliderView);
}

}

@Override
public void onSliderClick(BaseSliderView slider) {

}
}