Introduction

Main recommendation goes in the left sidebar. Other recommendations right.

Sunday, January 24, 2016

Why use Web2py?


Announcement


Last update: 6th March 2016

Unless you must program in Python, my latest and best recommendation go to FreeCodeCamp, read more here.

Download free Web2py ebook  and/or free Web2py Vimeo Album Videos

There is also a free Udemy course on Python and Web2py that is still under development as of this writing.

As Massimo Di Pierro (original author of Web2py) said, " the main advantage/objective of web2py framework is to be the easiest and fastest to develop web applications".





Friendly and ease of use


Web2py has a friendly, approachable outlook and feel to it e.g. GUI environment and web2py simple examples and more. There is a lesser learning curve and so much easier to deploy. So fast it took me less than two hours to run a hello world app site and deploy to python anywhere, learn and see how fast you can do it from killer web development. In fact, web2py is the only one that I got deployed after spending some tinkering with Django and Flask too. When it comes to the complexity of web frameworks, makes one wonder is it not the purpose of technological advancement to make life easier and simpler rather than not? This is straightforward, I think, there is much to learn before one can even do serious Django proper. Flask is easier than Django, but gets complex soon. Web2py is the simplest to get started quickly for me so far, but that does not mean it cannot be used for production. It is so friendly that running the server, file editing and web page views can all be done from the graphical interface, like an all in one package - that in itself, my friend, is in a league of its own, I feel.  That means you can even edit the codes from the desktop graphical interface without hunting high and low for a good and hopefully free code editor. In case you are wondering, my recommendation goes to the free Atom.io code editor that comes with free manual ebook.


Of course, when it comes to coding, one is more likely to fire up their favorite editor to modify the web2py files. Your choice.

Why is web2py important?


As a learning ground to pick up web frameworks. There is perhaps a gap between finishing a python beginner course and web framework coding. Web2py can cover the basics, yet not an overly simplistic framework to the point of just being a play toy. I like the fact that it can be used for learning easily, and expanded to become more advanced, or bring the same concepts over to other more 'intimidating' full-fledged frameworks. For those who could NOT seem to grasp or find web framework too tough to learn, then you may owe it to yourself to discover the importance of learning from the ground up the easy way, and work yourself up in steps. Even if Web2py does not support Python 3, still I consider it a good framework both for learning and production.



For learning Python and all the way to coding developing framework for deploying web applications


Though Django and Flask are much more popular than Web2py and seemingly learning Web2py would be taking a longer route to web development mastery, this may not be the case. Hear me out, you see web2py really may be deployed much faster, kind of like what I'd think a seasoned web framework made easy for others should be. Some of us may want to get productive with a site to show for it quickly, novice can get to see a website built to help support their confidence and an idea what they may accomplish in a short span of time. Also, Web2py can support module packages.  Further, the concepts you learn here may help you understand other frameworks too, as a stepping stone to Flask and Django. To top it off, do you know that there are free web2py ebook documentation that covers from python to web2py and lengthy web2py 30 videos album that can be watched and downloaded free? Personally, I find the free ebook documentation, videos, active support and the productive framework, even GUI based, to be commendable, and the only one so.

Bridging the Gap from python basics and web frameworks


I'm not sure about you but I find there is a gap or difference between learning python syntax for basic programming to understanding MVC web frameworks. When looking up stack exchange, stackoverflow or the likes, those who replied in regards to the framework questions are normally intermediate to advanced in their gameplay. But how did they get there? And is everyone cut out to learn the same way as they did? Is there a good and simpler, gentler way to learn a python web framework? These are basic, important questions I think newcomers should be asking or shown first before a bunch of advanced instructions, manuals or solutions. Just like the basic of programming starts with conquering with the smallest of tasks in bits then slowly progressing to more specialised topics, I think it is the same with learning web frameworks too. And guess what, the easiest web framework I found is web2py. Not easy like small framework like Flask, but easy like graphical interface, coding in the browser and learning from the ground up and even way up to advanced integration with other python python modules. Thanks to Massimo and other developers for the open source Web2py. Though there are other web framework solutions out there, but Web2py is a free complete, documented with free resources (ebook and web videos) and support, and beginner-friendly solution - this, I think is a hard deal to beat.

Support?


Active web2py Google Group forum here. For documentation, online manual and pdf download available hereKiller Web Development has done a good job of helping to learn (though somewhat outdated). Web2py is also covered in Book 2 of Realpython / Crash course in Web2py by Michael Herman.

Learning Path Recommendation?

Oh, rather than be distracted by the many, perhaps the best way is to just stick with the path recommended by Web2py.com. 

Conclusion


If you want to learn python and web development for free, this may be the one of the best option available :- Web2py ebook .  Then followed by the free Web2py Vimeo Album

Unconvinced? Why not hop over to a Step by Step Tutorial (The Basics) and glance through the images.


References:







Be kind.

Sunday, January 17, 2016

R and Python


Announcement   

25 January 2016: Machine Learning with R free ebook. Get it free in less than 5 hours.

22 January 2016: R Machine Learning Essentials - Grab free in less than than 24 hours here 

18 January 2016: Building Machine Learning Systems With Python eBook- Grab it free while offer runs out in less than 21 hours! Kindle version, not free (affiliate link) is also available on Amazon, though to be honest, unfortunately the reviews are not too positive.

Read more here about Python vs R for machine learning.

For jobseekers who gravitate towards Machine learning, here's Udacity's Nanodegree Plus - Machine Learning - Get hired guaranteed, conditions apply.

---------------------------------------------------------------------------------

In my previous post on learning a new programming language: Python,  Data analyst is mentioned or recommended.

Programming had progressed and become more complex over the years, may no longer be just about compiling a COBOL file and expects an simple output or just Msgbox(), lists and writing to database in Visual basics. It can still be but more people are looking for more than one skill set to filter out the applicants, understandably and sadly so. I may be wrong, there were challenges and hardships in the past, modern times too has its list of it - some overlapping and new I suppose. People are expected to know so much more before they will be considered for intermediate , higher position.

Nowadays, to be a decent a programmer, in my opinion, one may have to dabble in a few technologies to be proficient. For example, writing and sharing decent projects on Github, and then perhaps deploying them on another platform can be a an important and direct way to telling employers or clients what you had done. Another example is the the use code editors or IDE, in order to be a coder, one most likely has to be familiar with certain code editor of his preference, even testing and configuring for one that works and satisfy his requirements can be time-consuming before even beginning to code. Of course, some may just prefer to just code in basic notepad/Vi/Emacs. So far, my choice is Atom editor and SublimeText could be my next best choice. Online editor, I would recommend giving Cloud9 a shot.

While learning Python, R kept popping up while browsing the websites. Basically, R programming seem 'tailored and focused' on data analysis. Python is a general purpose, syntactically clean language that can also do data analysis e.g. Pandas, but looks like R is so geared towards mathematics, statistics and existing packages for this purpose. More here on Quora if you are interested.

Should you learning R, python or both?

I guess it all depends on what you want to accomplish. Say for example, if you just want to get hired to do Machine Learning, then you might as well enroll in Machine Learning Engineer Nanodegree Plus, which may not focus solely on R. If you are mathematically competent with a curious tendency to focus and explore data and graphs, then R programming can be your playground. I would think a coder who may have a general interest in programming, unsure about what his future or interest, then Python can be a good choice that can develop in different directions, ranging from web development, data analysis to database administration. Of course, those with the aptitude can do both, then again, consider if you are overloading and distracting yourself from being skilful in one, especially for a novice programmer. Or learn R after Python. To each his own.

Personally, I like to research and map out what are the possibilities and where it goes. I prefer Python official site's design, outlook and content to R-project website for one.





Above are two graphs to help understand how Python and R compare under development tools.


Conclusion


If you ==  mathematically or statistically inclined towards data analysis or machine learning:
    Learn R and/or Python
else:
    Learn Python


In any case,  if you wish to learn more about R programming, below can be good courses or resources to get you started.

Courses


Free and paid: 13 R programming related courses - Datacamp

Free -  R Basics - R programming  introduction - Udemy

Free - Data Analysis with R - Udacity

Be kind and best wishes.