Making the transition from hacking away at projects and gearing one’s self towards professional software development takes time, consistency, and considerable effort. Professional software development is measured, deals with edge cases, and has a specific methodology that it follows. Hacking can certainly churn out projects quite consistently but the quality of the product will definitely not be of the same caliber.
It is definitely possible to build a functioning web or mobile app in 24 to 72 hours but creating one that has a proper definition of edge cases, documentation, and testing - it’s a lot of work. Sure, for rapid learning or prototyping hacking is an option, but as an application scales it becomes exponentially more difficult to maintain a software application that was built as a hack.
One can argue that the original Facebook was a hack - it was made in roughly two weeks by Mark Zuckerberg and used MySQL and PHP, and as a proof of concept and functioning prototype it was fine - but for Facebook to deal with it’s exponential growth it had to develop the HHVM essentially an entirely new virtual machine that allowed PHP to be statically typed and more, a UI framework to handle the state changes in their messenger application and at an early stage had to adopt memcache to deal with scaling MySQL. It’s at a mature place today which was only attained after thousands of minds iterated and worked on the code.
When in production development sticking to one’s pre-defined software principles and use-case definitions as well as documenting and testing code can go a very long way in ensuring that the final product doesn’t feel like a hack but more like something one can be proud of.