How To Code Well

How To Code Well

By Peter FisherTechnology
Download on the App Store

How To Code Well episodes

  • 138 - The Coder Mindset

    Changlog

    • I’ve been plugging in Symfony events into the HTCW site when a user registers.
    • Due to being super busy I didn’t get to stream on Tuesday but I have done all the documentation for 6 of the 10 lessons in the course
    • I should be live on Twitch on Sunday
    • If I was to sum up the coder mindset in a single sentence:

      If you were to boil down the essence of a programmer it would be to have a practical mind, attention to detail, the ability to think logically, to zone in and out of different scopes and the will to compete complex tasks without giving up.

      Let’s break that down

      Thinking practically

      Practical thinking is important because it helps you solve real world problems.

      Set clear goals and priotizing work. You can also use life experiences to help solve problems.

      Attention to detail

      This means you take pride in your work, you care about the small stuff as much as the big stuff. In programming bad things can happen from the smallest mistake.

      The ability to think logically

      Logical thinking is a skill that involves using reasoning in a way that allows an individual to come to a viable solution

      This helps you re trace steps, think through puzzles and compartmentalise elements of a programs flow.

      Logical thinking requires several reasoning skills and the ability to look at a situation objectively and work towards a solution based on the facts at hand.

      Age shouldn’t be a factor when learning to code.

      In fact the older you are the more life experiences you will be able to bring to the web development table.

      There are lots of skills that are transferable which are very much required in professional web development. You may of gained some of this experiences in other jobs. Some of these skills may give you a distinct advantage over other web developers.

      Programming is one of these things that no matter how old you are, if you get good at it, nothing can stop you.

      26 min
    • 137 - Hello PHP 8.1

      Change log

      • The latest YT short teaches the nullsafe operator in PHP 8 
      • The PHP login course has been fully coded. This Tuesday on the YouTube Live stream we added the final touches including CSS. I need to write up the lesson plan and record the videos. I’m planning to release the course next year.
      • I will be planning the next course live on YouTube in the coming weeks
      • There is an idea that I’m toying with to drop the development of the subscriptions for the new hotowocodewell.net site in favour of having one off course purchases. The subscriptions would be added afterwards.
      • I am going to be recoding December’s YouTube shorts in the coming days. So if you have any suggestions then do let me know at howtocodewell.fm/contact
      • News

        1. PHP 7.4 looses active support in 3 days. (On the 28th of November 2021). It will have security support for a whole year
        2. PHP 8.1 has been released today. It has active support until the 25th of November 2023 and then security support until the 25th of November 2024
        3. 8.1 has many new features including enums, Green threads or Fibers which will be used in ReactPHP, readonly properties, Op cache performance improvements and many more

          PHP foundation

          https://blog.jetbrains.com/phpstorm/2021/11/the-php-foundation/



          40 min
        4. 136 - Breaking Changes in PHP

          Today I want to discuss the Deprecate dynamic properties RFC in PHP 8 and give you my view on breaking changes in software development. 

          Changelog 

          • New YT short PHP Union Data types 
          • You can watch me struggle to get the new PHP course that I’m building to level 9 of PHPStan I did that live on Tuesday. 
          • Over on Twitch I connected Googles YouTube API to https://howtocodewell.fm
          • I’ve started to use the new GitHub projects beta tool which lets you create a project that can have tasks from multiple repos which is proving very handy. 
          • I’ve started to look into the blockchain and how it works.  I can’t promise that I will do a course or a tutorial on that but I’m trying to wrap my brain around how it all works 
          • I have my new M1 Max MacBook Pro.  I haven’t had much chance using it as I’ve been so busy of late.

          • Get in contact and ask me a question


            My web development courses

            ➡️ Learn How to build a JavaScript Tip Calculator 

            ➡️ Learn JavaScript arrays

            ➡️ Learn PHP arrays

            ➡️ Learn Python

            ✉️ Get my weekly newsletter

            ⏰ My current live coding schedule (Times are GMT)

            Tuesdays 18:00 = Live Podcast YouTube

            Thursdays 20:00 = Live Podcast YouTube

            Saturday 14:30 - Live coding on Twitch

            34 min
          • 135 - Web 3 is coming - Be ready!

            Changelog

            November short PHP 8 tutorials have been scheduled. These include

            • Nullsafe operator
            • Named arguments
            • Union types
            • Phase 1 howtocodewell.fm features have been defined. Watch me build these live on Twitch on Sundays at 14:35 GMT

              I'm planning a new PHP 8 course.  I'm planning and creating this course live on YouTube on Tuesday evenings at 18:00 GMT

              In the news 

              1) PHPStan 1.0 has been released

              This release includes level 9 and a series of opt in features such as

              • unused visibility scope
              • Generic array function stubs
              • Recursive array type detection
              • And more
              • https://phpstan.org/blog/phpstan-1-0-released

                2) Jason Citron the CEO and founder of Discord teased a tweet showing an ETH integration to Discord. https://twitter.com/jasoncitron/status/1457841222995693570

                3) A new Reddit employee who works on the Crypto team tweeted a long thread regarding blockchain integration with the Reddit network

                https://www.reddit.com/r/ModSupport/comments/qpdwt2/why_werent_mods_notified_about_the_new/

                Get in contact and ask me a question

                My web development courses

                ➡️ Learn How to build a JavaScript Tip Calculator 

                ➡️ Learn JavaScript arrays

                ➡️ Learn PHP arrays

                ➡️ Learn Python

                ✉️ Get my weekly newsletter

                ⏰ My current live coding schedule (Times are GMT)

                Tuesdays 18:00 = Live Podcast YouTube

                Thursdays 20:00 = Live Podcast YouTube

                Saturday 14:30 - Live coding on Twitch

                46 min
              • 134 - Should PHP bugs go on GitHub

                There is an RFC https://wiki.php.net/rfc/github_issues which discusses the need to move the PHP bug tracker to GitHub.  In this episode I am going to give talk about 5 reasons I think this is a good idea and 5 reasons why I think this is a bad idea.

                I would love to hear what you think. Let me know

                5 Reasons why the PHP community should use GitHub to host their bug tracker

                1. Provides a Gatekeeper

                Currently on bugs.php.net anyone can submit a bug report without registering an account. GitHub requires a GitHub account for issue submission.

                2. GitHub EcoSystem

                Issues on GitHub can be matched against code commits, change logs can be automated, GitHub has decent project management and work flow tools, GitHub actions can be used for automated tasks and there will be a unified experience across the other GitHub php repositories.

                3. Everyone knows GitHub

                GitHub has taken over the programming world. Everyone knows about it, everyone can use it. This lowers the barrier of entry whilst still ensuring that authors of issues are held accountable for their comments.

                4. Not our infrastructure, Not our problem

                The GitHub infrastructure is managed by GitHub not by the PHP community.

                5. Time saver

                We can spend our time building better things for the PHP world instead of building and maintaining a bug tracker.

                5 Reasons why the PHP community should not use GitHub to host their bug tracker

                1. If it breaks we can’t fix it

                If GitHub goes down then we go down. PHP is at the mercy of GitHub and their issues.

                2. Once you’re in the ecosystem it’s hard to get out

                Making the decision to move away from GitHub will be harder than deciding to move away from bugs.php.net And if we needed to make the decision in the future we will need to support GitHub integrations.

                3. We have to play by the GitHub rules

                If GitHub doesn’t allow a country access then tough. We have to play by another companies rules

                4. We could build something better

                If time and money wasn’t an issue then we could build something better which is more tailored towards PHP and better meets the needs of the needs of the PHP community. The bug track could also be a great place to eat our own PHP dog food.

                5. We have to follow the GitHub road map

                Whatever that may be and where ever that may lead us.

                Something about having  many eggs in one basket


                Kick start your tech career with Amarachi Amaechi's new book Getting Started in Tech: A guide to building a tech career

                My web development courses

                ➡️ Learn How to build a JavaScript Tip Calculator 

                ➡️ Learn JavaScript arrays

                ➡️ Learn PHP arrays

                ➡️ Learn Python

                ✉️ Get my weekly newsletter

                ⏰ My current live coding schedule (Times are BST)

                Thursdays 20:00 = Live Podcast YouTube

                Sundays 14:30 - Live coding on Twitch

                26 min
              • 133 - New home, new code

                House keeping 

                1) We have a new website for the podcast with a shiny new contact form.  

                2) The assets are now back on the main site. Unfortunately due to a timing and backend error the images were unavailable for a short while. This has now been resolved. 

                3) I’m planning a new PHP course live on YouTube.  I will be doing this every Tuesday at around 6 PM BST.  The course is beginner friendly and free. It will cover PHP session management and the learner will be building a login form with a secured user dashboard. The course will use vanilla PHP and CSS. So no frameworks. 

                4) This weekend I will be streaming on Saturday on Twitch instead of Sunday. We re going to fix some bugs on the podcast website and work on some other related HTCW things. 

                5) I’ve been making more coder based YouTube shorts. I’ve recently published two short form PHP tutorials which are doing really well.  The first teaches the spaceship operator  and the second teaches the null coalescing operator.  I have more to come including PHP 8 tutorials so keep an eye out for those. 

                News 

                1) Gentle reminder to update to PHP 8. PHP 7 was released in 2015 and loses Active support for PHP 7.4 will end on November 28, 2021. Extended support for PHP 7 will end on November 28, 2022. After November 28, 2022, Microsoft will no longer support PHP.

                2) Bash autocompletion is coming to Symfony console. This adds support for autocompletion when using commands, option names and also allows dynamically contextually complete values for arguments and options. It means you can add custom completion support to your own commands, and OSS projects.

                3) The Missouri governor has released a fund-raising video stating that  “Digging around the HTML” is a crime in Missouri. This is after social security numbers of teachers were found in the HTML code. (Code that would be in clear text in HTML or at the least base 64 encoded). Apparently Journalists were able to hack the HTML source code. You can’t make this up.  This is the problem with having someone in power who is surrounded by yes people.

                4) Microsoft is losing confidence with some .NET developers after removing Hot Reloading feature from .Net


                Kick start your tech career with Amarachi Amaechi's new book Getting Started in Tech: A guide to building a tech career

                My web development courses

                ➡️ Learn How to build a JavaScript Tip Calculator 

                ➡️ Learn JavaScript arrays

                ➡️ Learn PHP arrays

                ➡️ Learn Python

                ✉️ Get my weekly newsletter

                33 min
              • 132 - Unleash the Apple M1 beast

                Symfony has updated their documentation design and it looks pretty slick. 

                Great index page. I think there are some spacing and UX issues but on the whole it’s a welcomed improvement but I do wish it had a search feature.  

                Package typo squatting.

                A package that has a miss spelled name is being used to trick 300 million websites harmful PHP code 

                I have finally have upgraded my MacBook Pro,  I got the MacBook Pro M1 Max -

                • 16 inch 
                • 10 Core CPU - 32 Core GPU 
                • 64 GB unified memory
                •  4 TB storage  
                • It would seem that they have got two halves of their pro lineup.  The first one is what they call Power to go.  And the other is termed as Super charged for pros.  

                  Some good things 

                  • Battery didn’t shrink so you can still use them on plans 
                  • They add back the ports 
                  • They made trade offs with weight and sizes.  
                  • They added a 1080p web camera but that comes with a notch 
                  • The pros still come with fans - 140W charger 
                  • Mag safe and USB C charging 
                  • Max allows for 7 streams of 8k video 
                  • Max has 400GB memory bandwidth 
                  • Allows for 4 monitors to be connected. 
                  • Magic keyboard with Touch ID 
                  • No more Touch ID  
                  • You can get the 14 inch pro machines with M1 Max but I’m not sure what the thermals will be like.  

                    Possible concerns.   

                    • This is my first M1 MacBook and I’m not 100% of what ARM support all the Docker images I use have. 
                    • I’m not sure how the battery will handle USBC charging and Magsafe.  I connect my monitors via USB-C 
                    • I’ve never used rosetta 2.  I’m not sure yet what other tools that I use require it. 
                    • How does the new SSD’s support the Docker file system?
                    •  Will the delivery get pushed out due to shortages?
                    • Kick start your tech career with Amarachi Amaechi's new book Getting Started in Tech: A guide to building a tech career

                      My web development courses

                      ➡️ Learn How to build a JavaScript Tip Calculator 

                      ➡️ Learn JavaScript arrays

                      ➡️ Learn PHP arrays

                      ➡️ Learn Python

                      ✉️ Get my weekly newsletter

                      ⏰ My current live coding schedule (Times are BST)

                      Thursdays 20:00 = Live Podcast YouTube

                      Sundays 14:30 - Live coding on Twitch

                      46 min
                    • 131 - 10 Git branching good practice tips

                      Let's talk about 10 good practice tips when using Git.  

                      Podcast Notes:  

                      PHP News: Swoole is a PHP extension that has been forked due to on going security concerns. The current version of Swoole downloads a compressed file from the business Swoole site which is NOT GOOD!  This file is a gzip file which is downloaded to your application.  

                      Apparently many attempts were made to raise this concern with the current maintainer of Swoole but nothing happened.  After these concerns were un-heard the PHP community decided to fork Swoole and remove the ability to run remote code from the Swoole business site. 

                      The forked alternative is called Open Swoole.  

                      Read more about it here: https://news-web.php.net/php.pecl.dev/17446  

                      Theres a new Apple event on the 18th of October. 

                      • M1X Mac book pro. 14 + 16 inch 
                      • Mac mini 
                      • AirPods  Will the Mac Book Pro have 64 GB of ram, will I buy a new Mac?  
                      • 10 Git Branch good practices  

                        1. Run code audits before merging into a work flow branch to prevent pipeline blockages 
                        2. Put config into a separate branch to the feature 
                        3. Use a GUI to inspect right, left, middle merges 
                        4. Communicate and talk through conflicts with other developers 
                        5. Don’t squash commits.  History is good 
                        6. Regularly merge the main branch into the feature branch 
                        7. Always get a team mate to review your code.  Even if its the smallest code change 
                        8. Keep to a good branch naming convention 
                        9. Separate code maintenance, features and fixes into their own branches - Be aware of what other features use your code 
                        10. Use messaging platforms like Slack or Discord to inform your team that something has been merged. Also use this to tell your team if the code audits have failed 
                        11. Fix any failed code audits before doing anything else.
                        12. Kick start your tech career with Amarachi Amaechi's new book Getting Started in Tech: A guide to building a tech career

                          My web development courses

                          ➡️ Learn How to build a JavaScript Tip Calculator 

                          ➡️ Learn JavaScript arrays

                          ➡️ Learn PHP arrays

                          ➡️ Learn Python

                          ✉️ Get my weekly newsletter

                          ⏰ My current live coding schedule (Times are BST)

                          Thursdays 20:00 = Live Podcast YouTube

                          Sundays 14:30 - Live coding on Twitch

                          50 min
                        13. 130 - Why you NEED a side project!

                          Today I am going to talk about side project in web development.  Why you need one, how to stay productive and what projects to learn.  Why is it good to have a side project?     

                          • Learn new skills in your own time at your own pace     
                          • Learn new technologies and techniques    
                          • Work without any constraints.  If you don’t get it done then it doesn’t matter     
                          • They encourage creativity and thinking outside of the box     
                          • They help you keep focused on the main projects.     
                          • They can help with mental health by providing an escape from the ‘real’ work    
                          •  They can be used as practice projects before working on production based code    
                          •  Great for full stack devs how want to broaden their tool set    
                          •  Great for getting out of comfort zone
                          • Five ways to stay productive 

                            • Create a things to do list.  I use GitHub projects 
                            • Create your own issues and PR’s with labels to help organise the different parts of the project 
                            • Time box the workload 
                            • If it starts to suck then stop.  Update the task list and move on - You are in control of the pressure.  So don’t worry if you don’t finish it. 
                            • Reduce the number of side projects you are working on at once.  
                            • Five side projects everyone can do 

                              • Learn how to automate backups with a cron job 
                              • Learn how to configure your dev machine via Ansible 
                              • Convert your blog into a web app/pwa/ native app 
                              • Start a podcast/YouTube channel that documents your learning journey 
                              • Rebuild your last project using a different programming language and document the comparisons
                              • 44 min
                              • 129 - Get ready for Symfony 6

                                Today I am going to talk about Symfony 6 and discuss why PHP developers should be aware of it.  

                                What about Symfony 5.4 LTS? 

                                • It will be released in November 2021 
                                • End of bug fixes November 2024 
                                • End of security fixes 2025 
                                • So you still have over 3 years before Symfony 5 will be end of life
                                • When will Symfony 6 be released 

                                  • Release November 2021 
                                  • End of support: July 2022
                                  • When will the LTS 6.4 version be ready and for how long 

                                    • Release: November 2023 
                                    • End of bug fixes: November 2026 
                                    • End of security fixes: November 2027
                                    • Kick start your tech career with Amarachi Amaechi's new book Getting Started in Tech: A guide to building a tech career

                                      My web development courses

                                      ➡️ Learn How to build a JavaScript Tip Calculator 

                                      ➡️ Learn JavaScript arrays

                                      ➡️ Learn PHP arrays

                                      ➡️ Learn Python

                                      ✉️ Get my weekly newsletter

                                      ⏰ My current live coding schedule (Times are BST)

                                      Thursdays 20:00 = Live Podcast YouTube

                                      Sundays 14:30 - Live coding on Twitch

                                      26 min

                                    About How To Code Well

                                    From the publisher's feed

                                    Web development discussions and interviews from Peter Fisher. Covering JavaScript, Linux, Docker, PHP, Python, MYSQL, HTML and more