Announcement

Collapse
No announcement yet.

Modern Scholarship - Web Development

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Modern Scholarship - Web Development

    Dear Family,

    I'm opening this thread for those of us that would like to learn how to build a website from scratch, which means writing all the necessary code from the ground up. There are several reasons why it's a good idea to learn this skill:

    1) Being able to write some computer code is starting to become (or maybe already is) part of modern standard literacy.
    2) Web development is one of the most in-demand professions.
    3) If you have a website of your own that you made through something like WordPress, Wix or GoDaddy, you can a) stop paying for that service and b) have more flexibility in your web design.

    So, why not join the learning? The two main languages for web development (HTML and CSS) are actually not too complicated and there are great online resources for learning them. Plus we have family members on the forum that are very skilled in computer science that can help us out.

    I started learning this stuff in January by taking a free course at codecademy.com. I liked it since it was very hands-on and didn't require reading pages and pages of information about code; rather it focused on guiding you through exercises to learn the material. After that I started the course at freecodecamp.com to learn more about Javascript, and I'm still working through that course (it's quite long).

    If there are at least a couple other people interested in learning this stuff or expanding their current knowledge, let's use this space to help each other in this undertaking. Just to reiterate, "programming" may sound daunting, but HTML and CSS and pretty straightforward and together can be used to make a great webpage. The main thing is practicing building a page. If you want to take the next leap and learn Javascript to make your page more interactive, it's a great idea since Javascript is so widely used, but it does take some time to learn.

    Just do it.

    Andrew
    Love, and do what you will.

    - St. Augustine

  • #2
    Hey Andrew,

    My basic response is "great idea"!

    In more detail, I would go into the "why" and "how", and apologise in advance because there is so much to say on this topic, it's something I struggle to achieve any sort of zen focus with! So I will try to organise these thoughts by headings to hopefully make it more readable.

    Why
    You've made a compelling case already why it is good to learn these things, I would add one more thing which is that I watched a tv show called "Girls can code" which was showing girls, who traditionally don't take up as many places in IT courses or jobs as boys, that coding needn't be boring, it can be fun in and of itself and provide career opportunities, but also if you are interested in other things be it fashion or photography, accounting and finance or whatever, you can combine knowledge of that with coding knowledge to build cool websites and apps.

    How
    This is where I struggle and would be glad to receive help from Andrew and others. Even though I am a coder by trade myself, this is mostly in old fashioned technologies, not the sort that make nice websites, screens, graphics, let alone apps. I feel as clueless as the next man when it comes to HTML, CSS and Javascript, as well as many other modern web technologies.

    One of the problems is there are so many online resources, books etc it is hard to pick which one to proceed with. The other is, for me personally, it is hard to find the discipline to stick at it in that format, especially with the pressure of work as well.

    I ended up doing distance learning degree modules from a proper university to try to get round the discipline problem. With them setting assignments, deadlines and so on it helped me discipline myself to do the studying. But with the pressure of working evenings and weekends in my day job, even that had to be abandoned, at least for now.

    Some of the online courses I tried were just as time consuming, and not as compelling without the disciplined schedule.

    However finally some of the MOOC providers seem to be offering shorter courses, which are much more manageable. I did an enjoyable course in Arduino plus C which was only a 4 week course for example. Leading me on to the next heading:

    What
    So which courses should we be thinking of? I have not used codeacademy or freecodecamp but would like to hear more. I have used udacity, EdX and Coursera. For me, and to get buyin from many others, I think the most important thing is to pick the ones that take up the least time. So I liked the idea of not much reading and plenty of hands on material from codeacademy. My recent great experience with arduino and C was with coursera, and they seem to offer some quick web programming coursew which might be good.

    Study Group
    Andrew is your idea to have a kind of study group? In which we might help and also motivate each other? With modern technologies like skype we could screenshare, chat, and really help each other through this stuff I think.
    Last edited by drunken boxer; 20 July 2017, 10:44 AM.

    Comment


    • #3
      Two more thoughts on learning:

      Stacks
      Two things to say about "stacks". The term "stack" has come into usage with systems development, meaning you often have to use a "stack" or group of several technologies sitting on top of each other to build complete systems and websites. This usually means a database technology, a web server technology, a programming language, and web technology (ie HTML, CSS, javascript). An example is the "LAMP" stack. I could do with help on the web parts, but I could help with the db and programming. I think it is not too daunting to learn a bit of a language like php and to use it to do basic operations to transfer data from your website screens/forms to databases and vice versa, that might be good to add for people as well?




      The other usage I have heard for stack comes from the guy who writes the Dilbert cartoons - he believes that people make themselves more marketable if they have a talent/skills "stack" rather than just one main talent or skill. For example if you are an accountant who speaks German and French, that might present more opportunities than if you are just an accountant, or just a languages expert. And if you have another skill plus IT, be it finance, photography or whatever as mentioned earlier, that might present more opportunities than if you just know one or the other,

      Purpose
      I spoke to the smartest person I have ever met recently, to pick his brains on what to learn and how to learn it. One of the main pieces of advice he gave me, which would help with the discipline, focus and "stickability" is to try to learn something with a purpose. The purpose may be to build your own website, or to get a job, or to understand the accounting software better at work, but one thing that I have found gives me a purpose outside of work to learn and practise this stuff, is to teach some of it to kids, ie nieces and nephews etc. There are some resources to make learning quite fun for them. Maybe I am going off topic now, but there are all kinds of projects with lego and robotics, and there are technologies like scratch and appinventor where they can code fun things on phones and tablets. I wonder is there any such help to teach kids or younger learners about websites and web technology - it may be the appropriate level for me!

      Ok think that's enough for now, thanks for starting the thread Andrew.

      Comment


      • #4
        coding needn't be boring, it can be fun in and of itself and provide career opportunities, but also if you are interested in other things be it fashion or photography, accounting and finance or whatever, you can combine knowledge of that with coding knowledge to build cool websites and apps.
        Yes!

        One of the problems is there are so many online resources, books etc it is hard to pick which one to proceed with. The other is, for me personally, it is hard to find the discipline to stick at it in that format, especially with the pressure of work as well.
        Agreed. As it is with the internet, you can find fantastic resources and also fantastically bad resources. I asked a friend who works as a software engineer where to begin, and he is the one that turned me on to codecademy. There won't be one resource that teaches everything you need to know, but I think a MOOC like codecademy is a great place to start.

        Since you mentioned Coursera, I did sign up for their Intro to Web Programming course, and spent very little time with it. It was basically the opposite of codecademy and FreeCodeCamp: long lecture videos of someone talking about coding. Not for me.

        In terms of time and discipline, in the beginning I just did my best to get at least 20 minutes of studying/practice done a day, though as my inner geek enjoyed it, it easily was longer than that.

        Andrew is your idea to have a kind of study group? In which we might help and also motivate each other? With modern technologies like skype we could screenshare, chat, and really help each other through this stuff I think.
        My original thought was to set a time limit, say six months, for those participating to complete an online course and build a website from scratch, meeting certain parameters. It would not take nearly six months to learn CSS and HTML, but it would give some cushion as people are busy with other responsibilities, and also time to learn some Javascript for those that are keen.

        I think it would be fun for the websites to be Shaolin themed. If a person has a goal to be a Protector of a certain art, perhaps building a website dedicated to that specific art would help them work towards that goal.

        Regarding guiding each other, video chat is a great option, this forum is also great since time zones don't always allow video conferences, and the forums on MOOC sites are also great. Also, what you quickly learn about coding is that one of the main skills is Googling how to do something.

        SO. Let's see if we get some more feedback/interest before laying down the guidelines of this web programming project.

        Just to reiterate: HTML and CSS are not complex! As with anything, it just requires the decision to start and finish the learning, and put that learning into practice.

        Andrew
        Love, and do what you will.

        - St. Augustine

        Comment


        • #5
          What Learning Web Coding Could Look Like, Shaolin Style

          If you're unclear about what the learning would require, it could be something like this:

          Step 1: Complete online HTML and CSS course. FreeCodeCamp says this part of their course takes five hours. If you do 22 minutes per day, you can be done in two weeks.

          Step 2: Build your first test website. Putting all the new knowledge together takes some practice and learning the "beginner mistakes." You could build a basic page that uses text, headings, images, links and videos in fifteen hours (lots of cushion time is given here), using what you learned in the online course and with some Googling. (Fifteen hours is much longer than what it takes once you're comfortable with the new languages.) If you do 30 minutes per day, you'll be done in one month.

          Step 3: If you feel ready, you could build your Shaolin site, or, review what you learned in the first course by taking a similar course on a different site. Allow one month for building the second site.

          What does a great website look like? Like this one about shaving!
          Love, and do what you will.

          - St. Augustine

          Comment


          • #6
            Originally posted by Andrew R View Post
            Since you mentioned Coursera, I did sign up for their Intro to Web Programming course, and spent very little time with it. It was basically the opposite of codecademy and FreeCodeCamp: long lecture videos of someone talking about coding. Not for me.
            Really useful information thank you. I had a good experience with really short, practical videos (2-5 mins) in the Arduino and C course with Coursera. But you reminded me that in the earlier days, while the likes of udacity had broken their videos into 1 or 2 minute pieces, and their site kept your place where you left off, Coursera courses had videos that could be 30 mins long, aarrgghh who needs that in 2017!

            Originally posted by Andrew R View Post
            In terms of time and discipline, in the beginning I just did my best to get at least 20 minutes of studying/practice done a day, though as my inner geek enjoyed it, it easily was longer than that.
            Great plan if you can stick to it. I tried to set a time each day where I would spend 15 mins (if busy) or up to 30 mins if I had time on learning web technology from a good site I found. I started well but then I got gazumped with having too much actual work, I was too anxious to take even 15 mins out for this.

            Another problem I have is that sometimes in a course or a class I have learned how to do something, practised it a bit, revised it, remembered it and aced it in the exam (this doesn't always happen, but sometimes) and then when a chance to use the same thing comes up a few months later in work I can't remember it. So as well as time and discipline, I also need to learn how to make things 'stick'. I guess getting practical experience building a website would help with that.

            Comment


            • #7
              Originally posted by Andrew R View Post
              I started learning this stuff in January by taking a free course at codecademy.com. I liked it since it was very hands-on and didn't require reading pages and pages of information about code; rather it focused on guiding you through exercises to learn the material. After that I started the course at freecodecamp.com to learn more about Javascript, and I'm still working through that course (it's quite long).
              Dear Brother

              Great idea. I would also say that website creation is a modern warrior art... but then I might be biased.
              As you say - the main thing is to start... try a web page and search for solutions when you get stuck. There are fantastic communities out there which offer help ( https://stackoverflow.com )

              codecademy.com and freecodecamp.com are great sites for getting started. If you are looking for a next step you might want to check
              • Coursera. Check out this specialization from the University of Hong Kong (more interesting than the one you tried I think, but still lots of videos and exercises; All Coursera courses are created by universities, which might explain the longer videos : Full Stack Web and Multiplatform Mobile App Development Specialization
              • Udemy has some interesting courses
              • Udacity - has both free and paid courses for beginners and advanced
              • get a book (o'reilly or the series from Jon Duckett - ) and work through the examples...


              Modern responsive* websites will require more than HTML and CSS. I would say JavaScript and sometimes also PHP (for Wordpress) is a must - but frameworks are a great help if you want to avoid it for now (check out: Bootstrap)

              Best regards
              Andrea



              (* a responsive website is a site that adapts to various device sizes automatically)
              Last edited by Andrea; 21 July 2017, 01:24 AM.
              Enjoy some Wahnam Tai Chi Chuan & Qi Gong!

              Evening Classes in Zürich
              Weekend Classes in other Swiss locations


              Website: www.taichichuan-wahnam.ch
              Facebook: www.facebook.com/Taichichuan.Wahnam.ch

              Comment


              • #8
                Originally posted by drunken boxer View Post
                Another problem I have is that sometimes in a course or a class I have learned how to do something, practised it a bit, revised it, remembered it and aced it in the exam (this doesn't always happen, but sometimes) and then when a chance to use the same thing comes up a few months later in work I can't remember it. So as well as time and discipline, I also need to learn how to make things 'stick'. I guess getting practical experience building a website would help with that.
                I copy interesting code bits, solutions I might use again, explanations etc to Evernote notes... and use tags, as well as a notebook index to find them again. I find this helps...

                Andrea
                Enjoy some Wahnam Tai Chi Chuan & Qi Gong!

                Evening Classes in Zürich
                Weekend Classes in other Swiss locations


                Website: www.taichichuan-wahnam.ch
                Facebook: www.facebook.com/Taichichuan.Wahnam.ch

                Comment


                • #9
                  Originally posted by Andrea View Post
                  I copy interesting code bits, solutions I might use again, explanations etc to Evernote notes... and use tags, as well as a notebook index to find them again. I find this helps...
                  Hi Andrea, oooh, very interesting! I take notes alright, but I have no good system for finding things in them later on! Evernote, tags, indexes sound interesting.

                  Comment


                  • #10
                    Originally posted by Andrea
                    Check out this specialization from the University of Hong Kong
                    Dear Sister,

                    Thanks for joining in. That course looks good as well. It says good knowledge of Javascript is required, so I'll have to come back to it.

                    Modern responsive* websites will require more than HTML and CSS. I would say JavaScript and sometimes also PHP (for Wordpress) is a must - but frameworks are a great help if you want to avoid it for now (check out: Bootstrap)
                    Good to point this out. For reference for others, there are "frameworks" available now that provide pre-written code that you can use, rather than writing all new code yourself. Bootstrap is one of those frameworks. If someone totally new to coding decides to join us in learning web development, and wants to include some more complex features, Bootstrap or another framework could be a good option for the purpose of this project.

                    BUT, while I have little experience in this field, I think at least the HTML and CSS should be written from scratch. JQuery, Bootstrap and others can be used to complement.
                    Love, and do what you will.

                    - St. Augustine

                    Comment


                    • #11
                      I would advise a good grounding in the basics before ever touching frameworks.

                      Happy to help answer any questions you might have while learning, or review your code.


                      Best wishes,

                      George
                      George / Юра
                      Shaolin Wahnam England

                      gate gate pāragate pārasaṁgate bodhi svāhā

                      Comment


                      • #12
                        A little bit of theory

                        When thinking about web development it is useful to split the various technologies into 2 categories: client-side (AKA front-end) and server-side (AKA back-end). The former is stuff that is processed by your browser and the latter is what runs on the web server that the browser will connect to to get the client-side stuff that it will then process.

                        Client-side

                        HTML

                        Hypertext Markup Language (HTML) is what is known as a "markup language". Basically it contains instructions on how the browser should present a page.

                        These days, it is mainly concerned with providing structure for the web page.

                        It is not a programming language.

                        CSS

                        Cascading Style Sheets (CSS) is what is known as a "style sheet language". It's function is to describe the presentation (formatting) of an HTML document.

                        HTML pages will include CSS code (either directly or by reference to a separate CSS file on the web server).

                        It is not a programming language.

                        JavaScript

                        JavaScript is a programming language that be used to interact with your page and do lots of other cool stuff.

                        It allows your page to change based on various factors.

                        It is not necessary to use JavaScript to make a website if your content and / or presentation does not need to change in the browser based on user actions or other factors. (And yes, you can and should make responsive pages with HTML and CSS alone. )

                        Server-side

                        A "static" website is just a collection of files on a web server. These files can be HTML, CSS, pictures videos etc. but the common theme is that the browser requests a file and the web server provides it. That is it.

                        A web server is a program that does exactly this - serve files. Common server applications include Apache and Nginx.

                        If simple file serving is not enough, then other technologies can come into play.

                        PHP

                        PHP is a programming language that is typically used to generate HTML pages based on logic and various factors (AKA state).

                        Web pages have a unique address (AKA a URL). Whereas static sites will always return the same page for a given URL using something like PHP means that the page returned can be different (AKA dynamic).

                        Database

                        A database in an application that stores data. You can store and retrieve this data from you application or script (i.e. your PHP script).

                        There are many database application and several different types of databases - this is a field of study in itself.

                        Common databases (in my order of preference) are SQLite and MySQL.
                        Last edited by George; 21 July 2017, 12:32 PM.
                        George / Юра
                        Shaolin Wahnam England

                        gate gate pāragate pārasaṁgate bodhi svāhā

                        Comment


                        • #13
                          Now, press F12 in your browser. Welcome to the Matrix.
                          George / Юра
                          Shaolin Wahnam England

                          gate gate pāragate pārasaṁgate bodhi svāhā

                          Comment


                          • #14
                            I was going to suggest Udacity also, as I've done a couple courses there and they were quite good, short videos. Not sure if there are about web development, but I'm pretty sure there is.

                            Originally posted by George View Post

                            Server-side

                            A "static" website is just a collection of files on a web server. These files can be HTML, CSS, pictures videos etc. but the common theme is that the browser requests a file and the web server provides it. That is it.

                            A web server is a program that does exactly this - serve files. Common server applications include Apache and Nginx.

                            If simple file serving is not enough, then other technologies can come into play.

                            PHP

                            PHP is a programming language that is typically used to generate HTML pages based on logic and various factors (AKA state).

                            Web pages have a unique address (AKA a URL). Whereas static sites will always return the same page for a given URL using something like PHP means that the page returned can be different (AKA dynamic).
                            May I also suggest, for people who're really serious about learning programming, C#, which is more generic and modern programming language, and which not only allows you to write websites like PHP, but also can be used for any kind of application, be it web, mobile, desktop, even IoT. So, if you learn it, not only you can write websites, but any kind of application

                            It is a very popular language, so I'm pretty sure most of the online learning places people are sharing should contain introduction and advanced materials for C#.

                            But yes, not needed if you just want to write client-side websites

                            Comment


                            • #15
                              Originally posted by rodrigo View Post
                              May I also suggest, for people who're really serious about learning programming, C#, which is more generic and modern programming language, and which not only allows you to write websites like PHP, but also can be used for any kind of application, be it web, mobile, desktop, even IoT. So, if you learn it, not only you can write websites, but any kind of application
                              Hey Rodrigo, from the perspective of those of us who have done older or more obscure languages, I was going to say that one reason php is a good choice is that in syntax for basic coding it seems similar to C#, java, C, C++. On the other hand that makes C# a good choice too! If I could choose, I would prefer to be proficient in C# than php, but there seem to be lots of resources around to help novices learn php in conjunction with web technology, I am not sure if that is the same for C#? (I don't know the answer, it is a genuine question.) Also, by using a proprietary language like C# would that tie us to Microsoft? Again I don't know the answer, just enquiring your opinion.

                              Comment

                              Working...
                              X