Wednesday, August 3, 2016

সফটওয়্যার ইঞ্জিনিয়ার হতে চাইলে একজন ইউনিভার্সিটির স্টুডেন্টকে একাডেমিক পড়াশোনার পাশাপাশি কি ধরণের প্রস্তুতি নেওয়া উচিত ?

আসসালামু 'আলাইকুম, নাহমাদুহু ওয়ানুসাল্লি আলা রাসুলিহিল কারিম, আম্মা বা'দ।
Ariful Islam ভাই খুবই সুন্দর একটি উদ্যোগ নিয়েছেন, নবীন ইউনিভার্সিটি স্টুডেন্টদের একাডেমিক সময়ে কি কি প্রস্তুতি নিতে হবে যেন পড়াশোনা শেষে জব পাওয়া ও জব-এ কাজ করার সহজ হয় - এ বিষয়ে তিনি বিভিন্নজনের মতামত সংগ্রহ করছেন এবং কম্পাইল করে পরবর্তীতে কম্বাইন্ড ভার্শন বের করার কাজ করছেন। এটি নিঃসন্দেহে খুবই প্রয়োজনীয় এবং যুগোপযোগী উদ্যোগ। উনার রিকোয়েষ্ট এ আমার কিছু মতামত পেশ করছি, আশা করি কাজে লাগতে পারে। 
 
১। স্কিল ডেভেলপমেন্ট এর জন্য ইউনিভার্সিটির প্রথম ও দ্বিতীয় বছয় প্রোগ্রামিং কন্টেস্ট এ সময় দিলে ভালো হয়, তখন প্রোগ্রামিং এর প্রতি একটা টান তৈরি হবে এবং প্রব্লেম সলভিং এর মজা টা পাওয়া যাবে। একটা সমস্যা কে কিভাবে ছোট ছোট ভাগে ভেংগে সলভ করতে হয়, কোন কোন সময় কোন ধরণের এলগরিদম ব্যবহার করতে হয়, কখন কম্প্রোমাইজ করতে হয় ইত্যাদি বিষয়ে একটা ভালো ধারণা এই সময় তৈরি হয়। ইউনিভার্সিটি গুলোতে প্রায়ই সিনিয়ররা কিংবা স্যারেরা কন্টেস্ট সংক্রান্ত বুটক্যাম্প বা নিদেনপক্ষে গাইডলাইন সেশন করে থাকেন, সেগুলোতে অংশগ্রহন করা উচিত। যারা CSE/ICT এর না, তারা সাধারণত ইউনিভার্সিটি থেকে কন্টেস্ট এ অংশগ্রহণ করতে পারেন না - তাদের অনলাইন কন্টেস্ট গুলাতে সময় দিতে হবে। অনলাইন কন্টেস্ট এর জন্য কয়েকট জনপ্রিয় সাইট হলঃ topcoder, codechef, uva, hackerrank
 
২। এর পরের ২ বছরে একটা নির্দিষ্ট track (PHP/.NET/Java/Android/iOS/C) বেছে নিয়ে তার উপর স্পেশালাইজেশন তৈরি করা উচিত। এর জন্য প্রথমেই যেটা প্রয়োজন হবে সেটা হল কমপক্ষে ২-৩ টা ভালো বই কাভার টু কাভার পড়া এবং এর বিষয়গুলো আত্বস্থ করা। বইয়ের প্রতিটা কোড ব্লক, এক্সারসাইজ, প্রব্লেম সলভিং নিজ হাতে টাইপ করে করে রান করে দেখতে হবে। অনেক সময় বিরক্তি আসতে পারে, কিন্তু তারপরও এটি চালিয়ে যেতে হবে ততদিন পর্যন্ত যতদিন নিজের মনে কনফিডেন্স না আসে। অনেক সময় এরকম হতে পারে যে একটা track এ অনেকদিন সময় দেয়ার পরও হচ্ছে না, তখন অন্যান্য track নিয়ে চেষ্টা করা যেতে পারে। অনেকে চিন্তা করেন যে কোনটা দিয়ে শুরু করবেন - একটু ঢুঁ মেরে দেখুন প্রত্যেকটির সাইট ও অনলাইন ডকুমেন্টেশন এ, কাছের বড় ভাইদের জিজ্ঞেস করুন, ইন্ডাস্ট্রিতে কাজ করছে এমন কোন বন্ধু বা আত্বীয়কেও জিজ্ঞেস করে দেখতে পারেন। যেটা নিয়েই শুরু করুন না কেন, লেগে থাকতে হবে আর যথেষ্ট সময় দিলে যেকন লাইনেই ভালো করা সম্ভব।
 
৩। যখন মনে হবে যে একটা কনফিডেন্স আসছে, অনেক গুলো ছোট ছোট প্রজেক্ট হয়ে গিয়েছে আর সহজেই একটা প্রব্লেম সলভ করা যায় একটু চিন্তা করলে, তখন পার্সোনাল কিছু প্রজেক্ট তৈরিতে হাত দেয়া উচিত যেখানে এই জ্ঞান পরিপূর্ণ ভাবে কাজে লাগবে। হতে পারে একটা Small POS system / Student Management System / HR Management / URL shortener / Invoice Generator / Job site / Blog / Twitter clone / University Portal / E-commerce store etc এরকম যেকোন কিছু যা আপনার ভালো লাগে। অনলাইনে এধরণের ভালো ভালো সলিউশন গুলো থেকে ফিচার বাছাই করে সেগুলা ইম্প্লেমেন্ট করলে একটা আইডিয়া তৈরি হবে যে আসলে কি থাকে এধরণের সফটওয়্যার এ। যেমন একটা Invoice Generator বানানোর জন্য freshbooks.com, invoicemachine.com ইত্যাদি সাইট এ ফ্রি একাউন্ট করে দেখতে হবে কি কি ফিচার তারা দেয় এবং সেখান থেকে ৮/১০ টা মূল ফিচার নিয়ে নিজের একটা ভার্শন বানাতে হবে।
 
৪। একই সাথে ভালো ওপেন সোর্স প্রজেক্ট খুঁজে খুঁজে সেগুলার কোড পড়তে হবে ও ডাউনলোড করে চালিয়ে দেখতে হবে। কিছু কিছু যায়গায় মডিফাই করে দেখতে হবে কি ইম্পাক্ট হয়, কোন অংশ কিভাবে কাজ করে ইত্যাদি। একজন অভিজ্ঞ প্রোগ্রামার মাত্রই সে অন্যের লেখা প্রচুর কোড পড়ে এবং ভালো কোড দেখে নতুন নতুন জিনিস শেখে। যেমন ওপেন সোর্স Invoice Generator এর কোড হিসেবে invoiceninja.com এর কোড দেখা যেতে পারে, E-commerce store হিসেবে sylius.org এর কোড দেখা যেতে পারে।
 
৫। এরপর যদি সুযোগ থাকে তাহলে এরকম ১/২ টা প্রজেক্ট এ কন্ট্রিবিউট করতে পারলে খুব ভালো হবে। এক্ষেত্রে শুরু করতে হবে কোন বাগ সলভ / ডকুমেন্টাশন আপডেট / খুব ছোট কোন ইম্প্রুভমেন্ট ইত্যদি দিয়ে। এখানে অনেকের মধ্যে একটা হেসিটেশন কাজ করে যে "আমি করতে পারি এমন কিছু কি এখানে আছে?" / "আমার চেয়ে অনেক অনেক বড় বড় ডেভেলপার রা কাজ করছে, আমি কি পাত্তা পাবো?" ইত্যাদি - এগুলো মাথা থেকে ঝেড়ে ফেলে দিয়ে দেখতে হবে ছোট ছোট কাজ কি আছে এবং সেখান থেকে শুরু করতে হবে। গিটহাব এ এধরণের প্রজেক্ট এর কন্ট্রিবিউটর পেজ এ গেলে দেখা যাবে যে মাত্র ১টা কমিট করেছে এমন লোকও অনেক আছে। তারা যদি করতে পারে, তাহলে আমিও পারবো এমন মানসিকতা রাখতে হবে। যেমন invoicenija.com এর কন্ট্রিবিউটর পেজে দেখা যাবে যে ৮৫ জন কন্ট্রিবিউটর এর মধ্যে ২৯ জনের আছে ১টা করে কমিট, ১০ জনের আছে ২টা করে কমিট, ৭ জনের ৩টা করে কমিট, ৭ জনের ৪টা করে কমিট ইত্যাদি।
 
৬। স্কিল ডেভেলপমেন্ট এর পাশাপাশি আপডেটেড থাকার জন্য track এর রেগুলার আপডেট ফলো করতে হবে। এজন্য reddit, stackoverflow, quora, sitepoint, etc সাইটে সবসময় চোখ রাখতে হবে, পাশাপাশি নিজের track এর এগ্রেগেটেড সাইট গুলো ও ফোরাম গুলোও দেখতে হবে। যেমন PHP তে যারা কাজ করেন তারা planet-php.net, phpdeveloper.org, laravel-news.com, laracasts.com, symfony.fl ইত্যাদি সাইট এ চোখ রাখতে পারেন, অংশগ্রহণ করতে পারেন phpXperts গ্রুপ এ - http://bit.ly/phpxperts। নতুন কোন ফিচার / লাইব্রেরি / কোড স্নিপেট ভালো লাগলে ডাউনলোড করে চালিয়ে দেখতে হবে। আর এই ফিল্ডের বড় বড় অভিজ্ঞ প্রোগ্রামারদের ব্লগ এ নিয়মিত ভিজিট করতে হবে, তাদের পোষ্ট পড়তে হবে এবং তাদের চিন্তাধারা গুলো বুঝার চেষ্টা করতে হবে। দেশে কাজ করছেন এমন অভিজ্ঞ প্রোগ্রামারদেরদের সাথে যোগাযোগ রাখার চেষ্টা করা যেতে পারে, এজন্য তাদেরকে ফেসবুক/টুইটারে ফলো করতে হবে।
 
৭। এভাবে নিজের স্কিল যখন একটা পর্যায় পর্যন্ত পৌঁছে যাবে, তখন সম্ভব হলে কিছু ফ্রিল্যান্সিং কাজ করা যেতে পারে। এজন্য সরাসরি আপওয়ার্ক বা এধরণের ফ্রিল্যান্সিং সাইট থেকে বিড করে কাজ নেয়া যেতে পারে বা অন্য কোন টিম / বড় ভাইয়ের সাথে জয়েন্টলি কাজ করা যেতে পারে। উদ্দেশ্য হল হাত পাকানো - ক্লায়েন্ট এর সাথে কমিউনিকেশন, রিকোয়রমেন্ট বুঝা, এস্টিমেট করা, মাইলষ্টোন এ ভাগ করে কাজ করা, কাজের ডেলিভারি দেয়া, কমিটমেন্ট ধরে রাখা ইত্যাদি বিষয়গুলো এই ফাঁকে আয়ত্তে এসে যাবে। অনেক সময় বিভিন্ন কোম্পানী পার্ট-টাইম বা ইন্টার্নশিপ এর সুযোগ দেয়, সেরকম ম্যানেজ করতে পারলে আরো ভালো। এখানে খেয়াল রাখতে হবে যে কাজ করতে গিয়ে যেন ওভার কমিটমেন্ট না হয়ে যায় - এমন যেন না হয় যে সময় মত কাজ না দিতে পারার কারণে কিংবা লো কোয়ালিটির কাজের কারণে নিজের বা নিজের কমিউনিটির বা দেশের সুনাম নষ্ট হল। এই বিষয়ে অনেক সুন্দর সুন্দর আর্টিকেল ও গাইডলাইন অনলাইন এ পাওয়া যায় - সেগুলা পড়তে হবে এবং নিজেকে যতটা সম্ভব ডিসিপ্লিন এর মধ্যে রাখতে হবে। 
 
৮। গ্রাজুয়েশেন এর পর জব এর জন্য প্রস্তুতি হিসেবে একটা ভালো রেজুমে বানাতে হবে - এখানে হাইলাইট করতে হবে পার্সোনাল প্রজেক্ট, ওপেন সোর্স কন্ট্রিবিউশন, নিজের ব্লগ, পছন্দের সাইট/রিসোর্স এর লিঙ্ক ইত্যাদি। একটু খুঁজলেই সুন্দর সুন্দর রেজুমের ফরম্যাট পাওয়া যায় অনলাইন এ, একেবারেই না পেলে গুগল ডকস এর টেমপ্লেট থেকে বেছে নেয়া যেতে পারে। রেজুমে তে গৎবাঁধা সব টেকনোলজির নাম না দিয়ে স্পেশালাইজেশন গুলা হাইলাইট করতে হবে। ইউনিভার্সিটির প্রজেক্টওয়ার্ক গুলো যদি রেলেভেন্ট হয়, তাহলে সেগুলোর নাম দেয়ার পাশাপাশি হাল্কা বর্ণনা দেয়া যেতে পারে।
 
এভাবে প্রস্তুতি নিলে আশা করা যায় একজন নিজেকে জব ফিল্ডের জন্য তৈরি করতে পারবে। এখানে একটা কথা না বললেই নয়, সেটা হল কোন শর্টকাট উপায়ে রাতারাতি স্কিল অর্জন করার কোন উপায় নেই - সফল হতে হলে অবশ্যই সময়, মেধা ও শ্রম ব্যয় করতে হবে। কেউ যদি এরকম আশ্বাস দেয় যে একটা কোর্স করলেই চাকুরী পাওয়া যাবে, বা কয়েকটি টিউটরিয়াল পড়েই ফ্রিল্যান্সিং করে টাকা কামানো যাবে তাহলে বুঝতে হবে যে এখানে কোন ফাঁক আছে। এসব বিষয়ের দিকে না ঝুঁকে মূল লার্নিং এ সময় দিলেই সফল হওয়া যাবে।
 
সবার জন্য অনেক অনেক শুভকামনা। 
 
* Mohammad Emran Hasan

Monday, August 1, 2016

পাইথন জব পাওয়ার জন্য একজন ক্যান্ডিডেটের কি ধরনের গুনাবলী থাকা দরকার?

পাইথন জব পাওয়ার জন্য একজন ক্যান্ডিডেটের কি ধরনের গুনাবলী থাকা দরকার? এই প্রশ্নের উত্তর দিয়েছেন পেপাল এর পাইথন টীমের হেড মাহমুদ । মাহমুদ পাইকোডার্স উইকলিরও কো-অথর ।

http://sedimental.org/getting_a_python_job.html

 আর্টিকেলের সারমর্ম:
-- শেখার আগ্রহ থাকতে হবে ।
-- গিটহাব একাউন্ট থাকা অত্যন্ত জরুরী, গিট জানতে হবে ।
-- নিজের সাইড প্রজেক্ট থাকলে ভালো ।
-- ওপেন সোর্স এ কন্ট্রিবিউট করুন, বড় প্রজেক্টে কন্ট্রিবিউশন আপনার জব পাওয়ার সম্ভাবনা বাড়িয়ে দিবে ।
-- লিনাক্স বা ওসএক্স ব্যবহার করুন । কমান্ড লাইন ভালো না জানলে সমস্যা ।
-- ব্লগ লিখুন, স্ট্যাকওভারফ্লোতে কন্ট্রিবিউট করুন

# Masnun

Sunday, April 17, 2016

কোডিং শেখার জন্য সেরা ৫০ টি ওয়েব সাইট !

আমরা কোডিং শেখার জন্য অনেক কিছু ঘাটাঘাটি করি। কিন্তু কোনো কিছুই প্রাকটিস ছাড়া সম্ভব নয়। কেমন হয় যদি প্রাকটিসও হয় এবং সাথে সাথে শেখা… এরকমই ৫০ টা ওয়েব সাইট আজ আপনাদের সামনে তুলে ধরব… এই ওয়েব সাইট গুলো থেকে আপনি HTML, CSS, Javascript, SQL, XHTML, Bootstrap, C, C++, Python, Ruby, Android Development, Java এবং আরো অনেক কিছুই শিখতে পারবেন.

1.Codecademy
শেখার জন্য আমার দেখা সেরা ওয়েব সাইট হল কোড একাডেমি… এটা হল সেই স্থান যেখান থেকে একজন বিগিনারের জন্য পারফেক্ট প্লেস। শুরু থেকেই একজন মানুষ হতাশ হয়ে পরে কোথা থেকে শুরু করবে, কিভাবে করবে আরো অনেক কিছু এখান থেকে সহজে শুরু করতে পারবেন। এখান থেকে আপনি ওয়েব বেজ সব কিছুরই বেসিক খুব ভালভাবে আয়ত্ত করতে পারবেন।
http://www.codecademy.com/

2.Udacity
ইউডিএসিটি আরেকটা প্লেস যেখান থেকে সহযে শিখতে পারবেন। এখানে অধিকাংশ সময় ভিডিও টিউটোরিয়াল পাওয়া যায় সেগুলোর উপরে ২-৩ মিনিটের কুইজ থাকে আরো অনেক কিছুই। এখান থেকে আপনি Computer Science, Web Application Engineering, Software Testing, Web Development, HTML5, Python, Java, Computer Science, Algorithm এগুলোর ভাল টিউটোরিয়াল পাবেন।
https://www.udacity.com/

3.Google Android Development
এটা হচ্ছে এন্ড্রয়েড ডেভেলপমেন্ট শেখার জন্য বেস্ট। যারা এই এন্ড্রয়েড তৈরী করেছে তাদের কাছ থেকেই শেখেন। এখানে বেসিক থেকে এডভান্স পর্যন্ত সব কিছুই পাবেন। আর কিভাবে আপনার এপস প্লে স্টোরের জন্য রেডি করবেন সেটাও পাবেন।
https://developer.android.com/training/index.html

4.Google’s Python Class
গুগলের পাইথন ক্লাস বলা হয় এটাকে। এটা সম্পূর্ণ ফ্রী।
https://developers.google.com/edu/python/

5.Coursera
এখানে সম্পূর্ণ ফ্রী অনেক কোর্স পাবেন। এখানে কম্পিউটার সায়েন্সের অনেক ভাল ভাল টিউটোরিয়াল পাবেন। এখান থেকে Computer architecture, Programming languages, C++ for C programming, Algorithms, Artificial Intelligence, Cryptography…etc এই গুলো খুব ভাল ভাবে শিখতে পারবেন।
https://www.coursera.org/
Websites What You Will Learn

6.Code.org - Basics of JavaScript programming , Python, Hopscotch etc
7.W3Schools.com --HTML,CSS,Javascript, jQuery, Bootstrap
8.Thenewboston HTML5, CSS, Javascript, Java, Python, PHP, App Development, Android Development, C Programming.
http://thenewboston.org/
9.MIT OpenCourseWare Electrical engineering and computer science in MIT’s OpenCourseWare collection
http://ocw.mit.edu/…/electrical-engineering-and-computer-s…/
10.Khan Academy Everything what you here
https://www.khanacademy.org/
11.Webmonkey HTML5, Ajax, CSS, APIs, Javascript etc.
http://www.webmonkey.com/tutorials/
12.CodeAvengers HTML, CSS, Javascript, Python etc.
https://www.codeavengers.com/
13. Codeschool HTML/CSS, JavaScript, Ruby, iOS
http://www.codeschool.com/
14. TeamTreeHouse HTML/CSS, JavaScript, Ruby, iOS, Android, Python…
http://teamtreehouse.com/
15. Html5Rocks HTML5/CSS
http://www.html5rocks.com/en/
16. Sqlzoo SQL
http://sqlzoo.net/
17. EDX Computer Science, Java
https://www.edx.org/
18. TheCodePlayer HTML5, CSS3, Javascript, Jquery
http://thecodeplayer.com/
19. LearnPythonTheHardWay Python
http://learnpythonthehardway.org/
20. SkillCrush HTML/CSS, Javascript, Python …more
http://skillcrush.com/
21. TutsPlus WordPress Plugin Development, Webdesigning, Other Coding tutorials
http://tutsplus.com/
22. CodeCombat Play to learn code
http://codecombat.com/
23. DontFearTheInternet HTML/CSS
http://www.dontfeartheinternet.com/
24. LearnLayout Advanced CSS
http://learnlayout.com/
25. Atozcss CSS Screencasts
http://www.atozcss.com/
26. Dash HTML5, CSS3, Javascript
https://dash.generalassemb.ly/
27. Web Accessibility Tools and techniques for web developers
https://webaccessibility.withgoogle.com/course
28. TheHelloWorldProgram Web Development, Linux, Python
http://www.thehelloworldprogram.com/web-development/
29. PythonTutor Python
http://pythontutor.com/
30. CodeLearn Web Development
http://www.codelearn.org/
31. Rubymonk Ruby
https://rubymonk.com/
32. Stanford University Software Algorithms
http://online.stanford.edu/courses
33. NodeTuts Node JS video tutorials
http://nodetuts.com/
34. NodeSchool Web software skills
http://nodeschool.io/
35. Egghead Video training for AngularJS, React, D3, and many other essential modern web technologies
https://egghead.io/
36. Learn-Angular AngularJS
http://learn-angular.org/
37. IOS Development IOS
https://itunes.apple.com/…/developing-apps-for…/id395605774…
38. LearnJavaOnline Java
http://www.learnjavaonline.org/
39. CodingBat Java, Python
http://codingbat.com/
40. Techotopia IOS, Android
http://www.techotopia.com/
41. EssentialSQL SQL
http://www.essentialsql.com/
42. SqlBolt SQL
http://sqlbolt.com/
43. Coderdojo HTML5, CSS3, Javascript
http://coderdojo.com/
44. HackDesign Design course
http://hackdesign.org/
45. Mozilla Developer Network Mozilla Development
https://developer.mozilla.org/en-US/
46. Programming Video Tutorials C++
http://www.programmingvideotutorials.com/c…/cpp-introduction
47. National Programme on Technology Enhanced Learning Principles of Programming Languages
http://www.youtube.com/course
48. Landofcode Java, CSS, HTML, PHP and VBScript
http://landofcode.com/
49. SitePoint Reference HTML5, CSS3, Javascript
http://reference.sitepoint.com/html
50. Wikiversity PHP, C++, Python, Java… etc
http://en.wikiversity.org/wiki/School:Computer_Science

Monday, March 7, 2016

Public To Do List in Trello

এটা শিখবো, ওটা শিখবো করে শেষ পর্যন্ত কোনটাই ভালো করে শেখা হয় না । তাই একবারে একটা পাবলিক লিস্ট বানিয়ে ফেললাম ট্রেলো তে । এটা এখন ঠিক ঠাক মত ফলো করতে পারলেই হয় ।

 https://trello.com/b/thjsmhqn/to-learn
 
"Explore" - লিস্ট এ থাকবে নতুন নতুন কি কি দেখতে হবে । এই টপিকগুলা লং টার্মে শিখতে চাই । এইগুলার কোন জিনিসগুলো শেখা দরকার সেটা এখনো জানি না, তাই শুধু নাম লিখে রাখছি । পরে ঘেটে দেখতে হবে কি কি শেখা লাগবে ।

ল্যাঙ্গুয়েজ স্পেসিফিক লিস্ট গুলায় থাকবে ঐ প্লাটফর্ম সংশ্লিষ্ট কিছু টপিক । প্রত্যেকটি কার্ডে একটি করে অবজেক্টিভ থাকবে । এই অবজেক্টিভ পূরন করলে কার্ডটিকে "Completed List" এ পাঠিয়ে দেওয়া হবে । কম্প্লিট করার সপ্তাহ খানেক পরে এটাকে আর্কাইভ করা হবে ।
প্রত্যেকটি কার্ড কম্প্লিট করার পর সম্ভব হলে একটা করে ডিটেইল এ ব্লগ পোস্ট লিখবো, অথবা এখানে সামারি শেয়ার করবো ।

# Masnun

Saturday, March 5, 2016

After learning the syntax, Where can I grow up my coding and problem solving skill step by step ?

After learning the syntax, from where can I grow up my coding and problem solving skill step by step?

I want to go such a place where I will be led from beginner to intermediate to advance stage and where I will be able to see other's done solution in case if I can't solve the problem.
Is it necessary for a beginner or intermediate level programmer to learn algorithm, discrete mathematics...?

* people we who are not from CS and out of ACM ICPC fall in such type of problem.

Ans:

# Tahy Aamir 




এখানে সবগুলো সমস্যা সমাধান করেন, আশা করি আপনার প্রশ্নের সমাধান হয়ে যাবে। https://github.com/karan/Projects

Note: আমি নিজেও এখনো‌ সবগুলো সমস্যা সমাধান করতে পারিনি। কারণ, সমস্যার কোন শেষ আছে?


# রাতুল মিনহাজ 

 "After learning the syntax, from where can I grow up my coding and problem solving skill step by step?"
If your target is to be a better programmer, then try solving problems from these sites:
http://hackerrank.com

http://projecteuler.net
http://codingbat.com

"... I will be able to see other's done solution in case if I can't solve the problem."
Tons of people use the sites I provided, you will find their Github repositories of solutions just by doing a few simple Google searches. Don't ask how to do that.

"Is it necessary for a beginner or intermadiate level programmer to learn algorithm, discrete mathematics...?"
Definitely, if you want to increase your analytical abilities and solve problems more efficiently. You can try doing online courses on these things from Coursera, edX, Udacity etc. See the full list of topics you might need to cover: 

 
https://github.com/open-source-society/computer-science


#তারাস্কির স্টকার 

 I'm not fit for ACM ICPC but now solving a2oj.com ladder........... it's well distributed problem from very easy to veteran........... it's working for me nicely and what i would say be language neutral cause in problem solving hierarchy
[Investigatio
n (visualising and doing on paper)
..Strategy (breaking problem in small pieces)
and ....Tactics (writing code)]
notice code comes at the last...............
 

NB: this a personal experience and that may vary from person to person

Friday, January 29, 2016

গেইম খেলতে খেলতে প্রোগ্রামিং

গেইম খেলতে খেলতে প্রোগ্রামিং শিখতে চাইলে চলে যান কোড কম্ব্যাট সাইট এ --

https://codecombat.com/

পাইথন, জাভাস্ক্রীপ্ট, ক্লোজার কিংবা লুয়া ব্যবহার করে গেইমের ক্যারেক্টারগুলোকে প্রোগ্রাম করতে পারবেন আপনি । কোড লিখে লিখে, বুদ্ধি করে পার করতে হবে লেভেল গুলো ।

ফিক্সড লেভেল ছাড়াও আছে টুর্নামেন্ট যেখানে আপনার এ্যালগরিদম নিয়ে ফাইট করতে পারবেন AI বা অন্য কোন খেলোয়াড়ের সাথে ।

* Another one- https://www.codingame.com/start

* Written by-  Masnun
 

Monday, January 25, 2016

জ্যাঙ্গোর ক্লাস বেইজড জেনেরিক ভিউগুলো দিয়ে খুব সহজে এবং অল্প সময়েই CRUD এ্যাপ্লিকেশন ডেভেলপ করা যায় ।

জ্যাঙ্গোর ক্লাস বেইজড জেনেরিক ভিউগুলো দিয়ে খুব সহজে এবং অল্প সময়েই CRUD এ্যাপ্লিকেশন ডেভেলপ করা যায় ।

জেনেরিক এই ভিউগুলো ব্যবহার করে খুব সিম্পল একটা এ্যাকাউন্টিং এ্যাপ এর সোর্স কোড পাবেন এখানে - এ্যাপটি একেবারেই ব্যাসিক । আপনি এ্যাকাউন্ট এ্যাড, এডিট, ডিলিট করতে পারবেন । প্রত্যেক এ্যাকাউন্টের জন্য ট্র্যান্জাকশানের লিস্ট আছে ।

https://github.com/masnun/django-accounts-app

ক্লাস বেইজড জেনেরিক ভিউ সম্পর্কে আরো বিস্তারিত জানা যাবে জ্যাঙ্গোর অফিশিয়াল ডকুমেন্টেশনে--

https://docs.djangoproject.com/en/1.9/topics/class-based-views/intro/

*Written by- Abu Ashraf Masnun