Lynda Weinman
بسیاری لیندا واینمن را "مادر آموزش اینترنتی" لقب داده اند. وی که هم اکنون (2016) ۶۰ سال سن دارد در ۱۹۹۵ سایتی را راه اندازی کرد که به عنوان منبعی رایگان برای دانش آموزان محسوب می شد. طی آن دوران لیندا به صورت خودآموز در حال یادگیری طراحی وب بود و تلاش داشت تا آموخته هایش را با سایرین نیز به اشتراک بگذارد. هر چند این روزها مسئله یاد شده امری عادی به حساب می آید اما در اواسط دهه نود -روزگاری که هنوز یوتیوبی نبود- یادگیری طراحی وب به صورت خودجوش چندان مسئله رایجی محسوب نمی گشت.
اشتیاق آن روزهای لیندا در یادگیری ، حالا به لطف وب سایت و سرویسی هایی همانند آنچه خود او راه اندازی کرده به میلیون ها نفر دیگر در سراسر دنیا نیز سرایت نموده و آنها می توانند با اندک هزینه ای و در هر جا و مکانی آنچه که دوست دارند را فرا بگیرند.
ناگفته نماند که پیدا کردن مسیر صحیح کسب و کار، حتی برای لیندا واینمن نیز بدون فراز و نشیب نبوده و وی هم مانند هر فرد موفق دیگری در راه رسیدن به پیروزی پستی و بلندی های بسیاری را از سر گذرانده.
درک نیازی که هیچکس به آن پاسخ نداده بود
وقتی در سال ۱۹۹۳ واینمن طراحی وب را اندک اندک فرا گرفته و قصد آموزش دادن آن را پیدا کرد، ابتدا به کتاب فروشی مراجع نمود و سعی کرد کتابی را به عنوان مرجع انتخاب و از روی آن به دانش آموزان خود درس بدهد. اما وی متوجه شد کتاب فروشی ها و کتابخانه ها تنها راهنماهایی بسیار فنی و پیچیده را ارائه می نمایند که درک شان برای افراد معمولی و با دانش متوسط تقریباً غیر ممکن محسوب می شود.
لیندا واینمن میگوید: به یاد می آورم که با خود فکر کردم شاید چنین کتابی هنوز وجود ندارد. بلافاصله از کتاب فروشی به خانه رفتم و ایده ی اولیه نوشتن آن را پیاده سازی کردم.
کمی بعد کتاب "طراحی گرافیک های تحت وب" که به باور بسیاری اولین کتاب ساده و قابل درک توسط عموم در رابطه با حرفه طراحی وب بود، توسط افراد بسیاری در سراسر دنیا به عنوان یک مرجع غیر فنی مورد استفاده قرار می گرفت و محبوبیتی غیر قابل باور به دست آورده بود.
درست در همان زمان و در سال ۱۹۹۵ واینمن آدرس ایمیل فردی را مشاهده نمود که به صورت debbie@debbie.com بود و مشتاق شد بداند آیا دامنه ی لیندا نیز برای ثبت کردن در دسترس قرار دارد یا خیر. وی این دامنه را خریداری و وبسایتی تحت آن راه انداخت تا از طریقش بتواند با دانش آموزان و همچنین خوانندگان کتاب خود ارتباط برقرار نماید.
شروعی کوچک و توسعه ای آهسته و پیوسته
بعد از موفقیت کتاب واینمن همسر او، بروس هون (Bruce Heavin)، که در اصل موسس کمپانی لیندا نیز محسوب می شود، پیشنهاد داد در طول تعطیلات بهاره یکی از سالن های کامپیوتر دانشگاهی را اجاره نموده و در آن به مدت یک هفته دوره آموزش طراحی وب برگزار نمایند.
آنها این ایده را عملی کردند و سپس به منظور جذب افراد علاقه مند بنر تبلیغاتی را روی سایت لیندا قرار دادند. نه تنها ظرفیت کلاس یاد شده بسیار سریع پر گشت، بلکه افراد از گوشه و کنار دنیا و حتی مثلاً شهر وین برای حضور در آن ثبت نام نمودند.
اینکه تنها یک بنر در سایت خود قرار دهیم و سپس مردم از سراسر دنیا برای حضور در کلاس مان ثبت نام نمایند، باعث شده بود تا شوکه شویم.
آن کارگاه های یک هفته ای بسیار زود باعث شدند تا کسب و کار امروزی لیندا و همسرش پایه گذاری گردد. واینمن از درآمد حق امتیاز کتاب خود با ارزش ۲۰ هزار دلار استفاده کرد و مدرسه طراحی وبی را راه اندازی نمود که دوره هایش در هر ماه به سرعت پیش فروش شده و ظرفیت شان تکمیل می گشت. لیندا می گوید: "مشتریان زیادی وجود داشتند که مجبور بودیم به آنها نه بگوییم، زیرا ظرفیتی برای پذیرش شان وجود نداشت".
اوج گیری پس از بحران
کسب و کار لیندا پس از چند سال توانست ۳۵ فرصت شغلی را ایجاد و درآمدی ۳.۵ میلیون دلاری را فراهم کند. اما در سال ۲۰۰۱ و پس از انفجار حباب دات کام و حوادث مرتبط به یازده سپتامبر، تمایل افراد به یادگیری دروس طراحی وب کاهشی عجیب پیدا کرد، تا جایی که واینمن و همسرش در ادامه دادن مسیر مردد شده بودند.
کمپانی آنها دچار بحرانی جدی گشت، واینمن و هون ۷۵ درصد کارمندان خود را اخراج کردند و تنها ۹ نفر در استخدام شان باقی ماند. دفتر و مقر برگزاری دوره های لیندا نیز کوچک تر گشت و سعی را بر این گذاشتند تا واحد هایی با قیمت ارزان تر اجاره نمایند.
روز های سیاهی بود و حتی خودم تردید داشتم که می توانیم این کسب و کار را ادامه دهیم یا خیر.
خود واینمن در مورد آن ایام می گوید: "همه در حال نبرد برای بقا بودند و سعی می کردند سر خود را بالای آب نگه دارند. ما نیز وضعیتی مشابه را تجربه می کردیم و در نهایت درست همین زمان بود که تصمیم گرفتیم خدمات خود را به صورت کاملاً آنلاین ارائه نماییم."
روزگاری که ایده یاد شده شکل گرفت و سپس عملی گشت (ارائه خدمات به صورت آنلاین) تماشای فیلم بر روی کامپیوترها تازه در حال رواج یافتن بود. لیندا دات کام تصمیم گرفت در ازای سرویسی که ارائه می کند هزینه حق اشتراکی ۲۵ دلاری را به صورت ماهیانه دریافت نماید.
افراد اندکی از این راهکار استقبال کردند. واینمن می گوید: "درآمد مان به شدت افت کرده بود. روز های سیاهی بود و حتی خودم تردید داشتم که می توانیم این کسب و کار را ادامه دهیم یا خیر."
با تنها ۱۰۰۰ نفر پرداخت کننده حق اشتراک ماهیانه، بقای کمپانی به نظر بسیار سخت می رسید. ایجاد یک جامعه ی آنلاین زمان بر است و لیندا به خود امید می داد که آنها مسیر شان را عوض نکرده اند بلکه راهی تازه را شروع نموده اند پس باید صبر پیشه کنند. او توضیح می دهد که "همه چیز بسیار آهسته پیش رفت. ولی کم کم پرداخت حق اشتراک ماهیانه آنلاین رواج پیدا کرد و مقدار آن هر ساله چندین برابر شد".
در ۲۰۰۶ تعداد مشترکین به ۱۰۰.۰۰۰ نفر رسید و واینمن و همسرش ۱۵۰ کارمند خود را به همراه خانواده هایشان به دیزنی لند بردند تا موفقیت بزرگی که رقم خورده بود را جشن بگیرند.
ایجاد فرهنگ سازمانی مناسب در زمان رشد
اینکه اعضا و کارمندان شرکت همانند یک خانواده با یکدیگر در تعامل باشند همواره برای لیندا حائز اهمیت بوده و او حتی همیشه تلاش داشته تا افراد تحت استخدام خود را با اسم کوچک بشناسد و صدا بزند. ولی رشد سریع کمپانی و رسیدن تعداد کارمندان به عدد ۵۰۰، رفته رفته چالش هایی تازه را پدید می آورد و سبب می گردد واینمن در ایده آل های خود بازنگری نماید.
وی می گوید: "چالش اصلی بر سر تعیین سمت و مقام افراد بود. اینکه با هر کس چه برخوردی باید صورت بگیرد. همه ی کسانی که رشدی سریع را در شرکت خود تجربه کرده اند می دانند که ایجاد سلسله مراتب تا چه حد اهمیت دارد."
در ۲۰۰۷ تصمیم بر این شد تا یک مدیرعامل جهت اداره ی بهتر مجموعه به آن اضافه گردد. به گفته ی خود لیندا "درست در همان زمان بود که او تصمیم گرفت در رفتارها و برخوردهای خود سیاست بیشتری داشته و بروکراتیک تر عمل نماید".
ایجاد فرهنگ سازمانی برای شرکتی با بیش از ۵۰۰ کارمند کاری بسیار دشوار خواهد بود ولی حتی آنچه از این مسئله نیز دشوارتر به حساب می آید پایه ریزی درست و مطابقت دادن افراد با فرهنگ یاد شده است. اینکار در زمانی که یک شرکت نوپا و کوچک محسوب می شود چندان سخت نیست و شاید ضروری هم نباشد ولی با رشد آن صورت پذیرفتنش الزام می یابد.
پیش به سوی موفقیت
مدتی است که بسیاری تصور می کنند دوره های آموزش ویدئویی می توانند آینده آموزش به حساب بیایند.
در طی سال های اخیر کمپانی واینمن توسط افراد گوناگونی که در حرفه ی خود بهترین هستند دوره های آنلاین متعددی را ایجاد نموده و سعی کرده نشان دهد این دوره های آنلاین راه و روش یادگیری را برای همیشه متحول کرده اند.
لیندا دات کام قالبی معین و کارآمد را برای دوره های آموزشی اش پدید آورده و سپس کوشش کرده تا از نظر موضوعی نیز در بین مطالب مورد تدریس خود تنوع ایجاد نماید. روزگاری در وب سایت مورد بحث تنها ۲۰ دوره آموزش ویدئویی آنلاین وجود داشت، اما اکنون این رقم به ۶۳۰۰ رسیده که شامل ۲۶۷.۰۰۰ ویدئوی آموزشی می گردد.
ارائه ی کتابخانه ای ویدئویی به جای اینکه از افراد درخواست شود تا در دوره هایی مشخص با روال معمول و پیوسته شرکت نمایند، عاملی بوده که سبب گشته شیوه ی آموزشی لیندا دات کام نسبت به سایرین کاملاً متفاوت گردد.
واینمن می گوید: "مدتی است که بسیاری تصور می کنند دوره های آموزش ویدئویی می توانند آینده آموزش به حساب بیایند. ما به خاطر همین تفاوت مان مورد توجه قرار داشته و تحت نظر سایرین هستیم".
فروش به لینکدین Linked in
من به شخصه بر روی اثری که از همکاری دو کمپانی با یکدیگر پدید می آید متمرکز هستم.
واینمن زمانی که متوجه می شود لینکدین قصد خرید کمپانی اش را دارد، در ابتدا شوکه می گردد. او و همسرش هرگز به دنبال فروش شرکت خود و یافتن مشتری برای آن نبوده اند و البته در سن ۶۰ سالگی وی هنوز هم احساس می نموده که برای بازنشستگی بسیار زود است.
اما رفته رفته به این نتیجه می رسند که این فروش و ادغام دو کمپانی با یکدیگر احتمالاً امری منطقی و موثر خواهد بود. هر دو شرکت به نوعی تلاش داشته اند به افراد کمک کنند تا وضعیت شغلی خود را بهبود بخشند و احتمالاً در کنار یکدیگر بسیار بهتر از گذشته می توانند این هدف را محقق کنند.
واینمن می گوید: "بسیاری از مردم بر روی رقم معامله صورت پذیرفته تمرکز دارند و شاید این مسئله برای افرادی که با صنعت ما آشنا نیستند یک شگفتی محسوب شود. ولی خود من به شخصه بر روی اثری که از همکاری دو کمپانی با یکدیگر پدید می آید متمرکز هستم و اولین چیزی که در رابطه با این موضوع به ذهنم می رسد، میزان بزرگی این اثرگذاری است."
به نظر می آید حتی لیندا واینمن هم از موفقیت خودش شگفت زده است و تصور چنین روزی را نداشته. بر خلاف بسیاری از بنیانگذاران کمپانی ها مهم تکنولوژیک امروزی ، وی با هدف کسب درآمد های کلان شروع به کار نکرده و قصد اولیه اش هرگز ایجاد کمپانی نبوده که توسط لینکدین به ارزش ۱.۵ میلیارد دلار خریداری شد. او تنها سعی داشته آنچه که برای خودش جذاب بوده، یعنی طراحی وب را به سایرین نیز بیاموزد.
واینمن که بر حسب اتفاق بدل به یک معلم گشته، می گوید: "من نه چندان گنگ بودم و نه به آن صورت خوره ی دنیای تکنولوژی. افراد زیادی پیش من می آمدند و می پرسیدند چگونه این کار را انجام می دهی؟ یا چگونه آن کار را انجام می دهی؟ هرگز با خودم فکر نکرده بودم به اشتراک گذاشتن دانش در رابطه با آنچه که برایت جالب است، در واقع همان تدریس کردن محسوب می شود."
در حالکیه لیندا اعتقاد دارد تنها در زمان و مکان مناسبی حضور داشته، سخت است بدل شدن یک دامنه ی ۳۵ دلاری به کسب و کاری ۱.۵ میلیارد دلاری را حاصل یک اتفاق بدانیم.
با Spring MVC، یک فریمورک وب ضروری برای توسعه دهندگان جاوا که روی پروژههای سطح سازمان کار میکنند، آشنا شوید. در طول این دوره عملی، مربی Ketkee Aryamane از جنبههای اساسی این فریمورک گام بر میدارد، جایی که وی کنترل کنندهها، مدلها و دیدگاههای موجود در Spring MVC را توضیح میدهد. او همچنین در مورد مزایای یادگیری Spring MVC بحث میکند. رسیدگی به استثناء، مضامین، اجرای جریانهای ناهمزمان، و گسترش برنامه MVC Spring شما برای ارائه درخواستهای REST را بررسی میکند. و تمریناتی را ارائه میدهد که به شما در تقویت درک شما در مورد مفاهیم کلیدی کمک میکند. پس از اتمام این دوره، شما دانش لازم برای ساخت برنامههای وب MVC قوی با Spring MVC را خواهید داشت.
نمونه ویدیوی آموزشی ( فایلهای زیر نویس جدا از فیلم است و میتوانید آنرا نمایش ندهید ) :
00 مقدمه
___| 00_01 Spring MVC برای برنامههای قوی
___| 00_02 آنچه باید بدانید
___| 00_03 تمرین فایلها و برنامه نسخهی نمایشی
01 شروع و راه اندازی پروژه
___| 01_01 چرا از Spring MVC استفاده میکنیم
___| 01_02 ویژگیهای Spring MVC
___| 01_03 معماری MVC Spring
___| 01_04 پروژه Maven Spring MVC ایجاد کنید
___| 01_05 پوشهها و پروندههای استاتیک را اضافه کنید
___| 01_06 پیکربندی جاوا برای Spring MVC
___| 01_07 کنترلرها را اضافه کنید و برنامه را تست کنید
___| 01_08 تولید پروژه MVC Spring با Spring Boot
___| 01_09 استاتیک فایلها را اضافه کنید و وضوح تصویر را مشاهده کنید
___| 01_10 کنترلرها را اضافه کنید و برنامه را تست کنید
02 اجرای جریانهای کنترل کننده
___| 02_01 حاشیه نویسی اساسی برای کنترل
___| 02_02 با نقشه درخواست، یک کنترلر ایجاد کنید
___| 02_03 RequestParam in Controller
___| 02_04 کد پایگاه داده را اضافه کنید
___| 02_05 دادههای Access از Model
___| 02_06 ModelAttribute؛ صفحات JSP را اضافه کنید
___| 02_07 ModelAttribute؛ ویژگیهای مدل Access در JSP
___| 02_08 ModelAttribute؛ کتابخانه برچسب فرم Spring را اضافه کنید
___| 02_09 برنامه را تست کنید
اعتبارسنجی و صحت اطلاعات 03
___| 03_01 اعتبارسنجی دادهها در مدل ها
___| 03_02 اعتبارات را به کاربر bean اضافه کنید
___| 03_03 برچسبهای Spring برای خطاها
___| 03_04 بومیسازی پیامهای خطا
___| 03_05 بررسی اجمالی صحافی
___| 03_06 نسخهی نمایشی Binders
___| 03_07 نمای کلی مبدل ها
___| 03_08 نسخه نمایشی مبدل ها
04 دست زدن به استثنا
___| 04_01 DispatcherServlet و انواع خاص bean0
___| 04_02 پیاده سازیهای کنترل کننده جریان استثنا
___| 04_03 صفحه خطای سفارشی و کنترلر ورود
___| 04_04 برای انتخاب کاربر روش اضافه کنید
___| 04_05 کنترل کننده استثنا را در Controller اضافه کنید
___| 04_06 کنترل کننده استثناء جهانی برای برنامه
___| 04_07 ویژگیهای مدل پیش فرض با استفاده ازControllerAdvice
05 پردازش درخواست Async
___| 05_01 پردازش درخواست مرسوم HTTP
___| 05_02 پردازش اسینک MVC Spring در زیر کاپوت
___| 05_03 پیکربندی Async
___| 05_04 در کنترل کننده قابل برگشت است
___| 05_05 اجرای DeferredResult برای async
06 مشاهده حل کننده ها
___| 06_01 نمایه کنندههای نمایش چیست
___| 06_02 با استفاده از XmlViewResolver
___| 06_03 با استفاده از ResourceBundleViewResolver
___| 06_04 حلقویها برای نمایش نمای
___| 06_05 نسخه نمایشی حل کنندههای نمایش زنجیره ای
07 رهگیر و مضامین
___| 07_01 آشنایی با رهگیران
___| 07_02 ساخته شده و رهگیر سفارشی
___| 07_03 کلاس رهگیری را اضافه کنید
___| 07_04 ثبت رهگیران
___| 07_05 درخواست و ویژگیهای جلسه
___| 07_06 نسخه نمایشی SessionAttributes را ذخیره و دریافت کنید
___| 07_07 جریان جلسه آزمون و اجرای حمل و نقل
___| 07_08 پایان HttpSession
___| 07_09 هدایت به خارج از برنامه
___| 07_10 آشنایی با مضامین
___| 07_11 تم و حل کننده تم را تعریف کنید
___| 07_12 ThemeChangeInterceptor را تعریف کنید
___| 07_13 مضامین موجود در JSP را انتخاب کنید
___| 07_14 مقدمهای برای l10n و i18n
___| 07_15 نمایشی با وضوح محلی
___| 07_16 CookieLocaleResolver و رهگیر l10n و i18n
کنترل کنندههای 08 Spring MVC REST
___| 08_01 خدمات RESTful recap
___| 08_02 ازController وResponseBody استفاده کنید
___| 08_03 ازRequestController وResponseEntity استفاده کنید
___| 08_04 برای دریافت بار درخواست، ازPathVariable وRequestParam استفاده کنید
___| 08_05 ازRequestBody وResponseEntity استفاده کنید
___| 08_06 ازExceptionHandler استفاده کنید
___| 08_07 تستExceptionHandler باResponseEntity
___| 08_08 کنترلرهای MVC در مقابل REST
09 نتیجه گیری
___| 09_01 مراحل بعدی
00 Introduction
___| 00_01 Spring MVC for robust applications
___| 00_02 What you should know
___| 00_03 Exercise files and the demo app
01 Getting Started and Project Setup
___| 01_01 Why use Spring MVC
___| 01_02 Features of Spring MVC
___| 01_03 Spring MVC architecture
___| 01_04 Create Maven Spring MVC project
___| 01_05 Add folders and static files
___| 01_06 Java configuration for Spring MVC
___| 01_07 Add controllers and test the application
___| 01_08 Generate Spring MVC project with Spring Boot
___| 01_09 Add static files and view resolver
___| 01_10 Add controllers and test the application
02 Implementing Controller Flows
___| 02_01 Basic annotations for controllers
___| 02_02 Create a controller with request mapping
___| 02_03 @RequestParam in Controller
___| 02_04 Add database code
___| 02_05 Access data from Model
___| 02_06 @ModelAttribute; Add JSP pages
___| 02_07 @ModelAttribute; Access model attributes on JSP
___| 02_08 @ModelAttribute; Add Spring form tag library
___| 02_09 Test the application
03 Data Validation and Binding
___| 03_01 Validating data in models
___| 03_02 Add validations to user bean
___| 03_03 Spring tags for errors
___| 03_04 Localizing error messages
___| 03_05 Binders overview
___| 03_06 Binders demo
___| 03_07 Convertors overview
___| 03_08 Convertors demo
04 Exception Handling
___| 04_01 DispatcherServlet and special bean types
___| 04_02 Exception flow handler implementations
___| 04_03 Custom error page and Login controller
___| 04_04 Add method for selecting a user
___| 04_05 Add exception handler in Controller
___| 04_06 Global exception handler for application
___| 04_07 Default model attributes using @ControllerAdvice
05 Async Request Processing
___| 05_01 Conventional HTTP request processing
___| 05_02 Spring MVC async processing under the hood
___| 05_03 Async configuration
___| 05_04 Return callable in Controller
___| 05_05 DeferredResult implementation for async
06 View Resolvers
___| 06_01 What are view resolvers
___| 06_02 Using XmlViewResolver
___| 06_03 Using ResourceBundleViewResolver
___| 06_04 Chaining view resolvers
___| 06_05 Chaining view resolvers demo
07 Interceptors and Themes
___| 07_01 Introduction to interceptors
___| 07_02 Built-in and custom interceptors
___| 07_03 Add interceptor class
___| 07_04 Register interceptors
___| 07_05 Request and session attributes
___| 07_06 Save and get SessionAttributes demo
___| 07_07 Test session flow and implement forwarding
___| 07_08 End HttpSession
___| 07_09 Redirecting outside an application
___| 07_10 Introduction to themes
___| 07_11 Define themes and theme resolver
___| 07_12 Define ThemeChangeInterceptor
___| 07_13 Pick themes on JSPs
___| 07_14 Introduction to l10n and i18n
___| 07_15 Automatic locale resolution demo
___| 07_16 CookieLocaleResolver and interceptor for l10n and i18n
08 Spring MVC REST Controllers
___| 08_01 RESTful services recap
___| 08_02 Use @Controller and @ResponseBody
___| 08_03 Use @RequestController and @ResponseEntity
___| 08_04 Use @PathVariable and @RequestParam to get request payload
___| 08_05 Use @RequestBody and @ResponseEntity
___| 08_06 Use @ExceptionHandler
___| 08_07 Testing the @ExceptionHandler with the @ResponseEntity
___| 08_08 MVC vs. REST controllers
09 Conclusion
___| 09_01 Next steps
Ketkee Aryamane یک متخصص نرم افزار با یک دهه تجربه در فن آوری جاوا و JEE است. در چند سال گذشته، Ketkee در حوزه آموزش کار کرده است، آموزش هایی را در زمینه هایی مانند Struts، Hibernate و Spring انجام داده است. او همچنین در آموزش فناوری های وب ، از جمله HTML5، CSS3، جاوا اسکریپت و AngularJS فعالیت داشته است. در حال حاضر او به عنوان یک معلم فنی حرفه ای آزاد کار می کند.