TFIP IBF Full Stack Development

daniel4165

Junior Member
Joined
May 7, 2019
Messages
27
Reaction score
2
I don’t think your approach is good for average beginners. If I jump here and there like you eg spend only 2 weeks (2hrs a day) to learn basic html and css stuff like you said I don’t understand how you can go in dept and learn things like flexbox, css grid and even use all the libraries like bootstrap to design a good looking website.
Next after the 2 weeks you want me to jump to js and to learn basic things up till conditionals and loops and then the next 2 weeks jumping to learn the same thing in another language like C#? I wouldn’t have even grasp things like es6, objects, higher order functions in js and frameworks like react. This is what the nus iss masters program seems like to me and basically it’s asking too much. Maybe you are a fast learner or I am a slow one idk.

Maybe the way I'm learning is actually damn bad LOL. But it works for me, somehow. Maybe my brain is weird.

My current job is a lot of reporting, and honestly quite boring. Just need to be good at excel and automating some stuff + automate Outlook to email people with some nice email html formatting so the boss can see stuff easily.

I like learning new things, that's why I found programming really interesting. I wasn't learning anything new at work. Kind of regret not having studied it during Uni days, but better late than never right?

So learning programming by learning multiple languages and playing around with their libraries works for me. I keep learning new stuff (Awesome). I see progress with my skills and my wealth of knowledge grows each month (Awesome). I realize: "So this is how memory management kindaaa works with C??" or "Oh! That's why people always say Python is awesome for Data Science, because of their amazing libraries." or "Orhh.. You can do so much stuff with just modern javascript + HTML + CSS?" (Awesome)

No, I'm not fast learner. I always feel damn stupid whenever I learn some new concept. You wouldn't believe how long it takes me to understand some simple concepts. But I just keep practicing and watching youtube videos until I "get" it lor. Like some lightbulb flash in the head.

That's why I said I couldn't understand OOP concepts while learning Python. Then while I learn Javascript, suddenly OOP concepts became damn obvious. Not sure why. As I said, my brain is weird :)
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,391
Reaction score
1,180
If you talking about the long term then yes I agree and by long term I mean like years. But if you suggesting for beginners to learn abit here then jump around and learn other language and tech like you said then I disagree. All these in the span of 6 months in the nus iss which this IBF intends to send ppl to right? Sounds like you wont be prepared for anything at the end to me. I still think it’s better to stick to one language for awhile (months) before you move on to other things.

Sure lets do it your way. Have you master your Javascript yet ? The next ECMAscript is coming out soon, you will no longer be a master of Javascript because new features that you don't know make you less proficient as before. When are you going to start on your SQL ? Do you know SQL have stored procedure which are also programming language in a way ?

You will most likely be *NOT* a master of most stuff that will make your proficient in the IT industry. It doesn't matter if you are a beginner, or intermediate or advance developer. If you can't do what you are tasked to do, you will be lagging behind. When you are thrown a task in real life, you will need to pick up things almost instantaneously and within short time frames like weeks to 1.5months. If you did not train yourself to adapt learning a couple of new things at the same time, you will be *AVERAGE* whether you like it or not.

The fact that you are in an institute learning, is exactly the best place to get yourself tune to the industrial requirement and learn to be adaptive and versatile. When you are thrown to devops, needing to learn ansible, chef, puppet, or gkven a performance testing environment like Jmeter which you will need to learn groovy, jexl, beanshell, or java, you will perform badly if you don't have the SKILLSET to be versatile in your learning techniques.

Yes, even LEARNING is something to learn. You don't just be versatile because you decided one morning you wanted to be, you are versatile because you grasp the technique to juggle multiple things at the same time. How you learn this ? Throw yourself into the fire and you will learn. I have been in the IT industry for more than a decade, so whether you want to believe I say is true, you will find out pretty soon :)

Javascript is for one thing, C# is a different paradigm. Whether you like it or not, that's how the industry is. Doing your way, means you are not going to catch up at all, because you purposely limit your exposure to just one single language. Javascript is an event driven language which introduce a different way of programming, vs C# which are more structured and offers multi-threading and classical OOP. Javascript is not classical OOP, it is using prototyping OOP which is a different mode.

6 months and only 2 languages, I call it cozy. Your own choice seriously. :) Back in my NUS days, multitude languages and technologies in the same semester. C, Java, shell script, SQL, ASP, HTML, Javascript.
 
Last edited:

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,391
Reaction score
1,180
Maybe the way I'm learning is actually damn bad LOL. But it works for me, somehow. Maybe my brain is weird.

My current job is a lot of reporting, and honestly quite boring. Just need to be good at excel and automating some stuff + automate Outlook to email people with some nice email html formatting so the boss can see stuff easily.

I like learning new things, that's why I found programming really interesting. I wasn't learning anything new at work. Kind of regret not having studied it during Uni days, but better late than never right?

So learning programming by learning multiple languages and playing around with their libraries works for me. I keep learning new stuff (Awesome). I see progress with my skills and my wealth of knowledge grows each month (Awesome). I realize: "So this is how memory management kindaaa works with C??" or "Oh! That's why people always say Python is awesome for Data Science, because of their amazing libraries." or "Orhh.. You can do so much stuff with just modern javascript + HTML + CSS?" (Awesome)

No, I'm not fast learner. I always feel damn stupid whenever I learn some new concept. You wouldn't believe how long it takes me to understand some simple concepts. But I just keep practicing and watching youtube videos until I "get" it lor. Like some lightbulb flash in the head.

That's why I said I couldn't understand OOP concepts while learning Python. Then while I learn Javascript, suddenly OOP concepts became damn obvious. Not sure why. As I said, my brain is weird :)

Don't worry, you are doing just fine. That's because you love technologies and you are embracing it. There is no such things as one programming language though out. That's a fallacy. You either started with the understanding that the IT industry is a very vibrant one that demands learning to be spontaneous and concurrent, or you lag behind and let others take over you.

I am thrown into the Perl programming language when I'm in my first year of work. I don't know anything about Perl before it and today I can say I am a rather advance Perl developer. At the same time, I still have to learn Linux, industrial best practices, reading RFC learning about SMTP and SMPP and so forth. If at the start of the course and you condition yourself to only learn one thing at one time, you will be getting a culture shock when you are at work. We are not in lalaland unfortunately :)
 

Carineng123

Junior Member
Joined
Jun 21, 2019
Messages
2
Reaction score
0
He might sound quite dismissive, but I do kinda understand what he’s saying about learning multiple languages.

I’m also a beginner, only started learning programming since last November. So it has been around 8 months since I started? And I usually just take 1-2 hours to study it daily, after work or during the weekends.

Before that, I only knew VBA to automate some of my excel work.

I started by learning C and Python in Harvard’s online CS50 course. Spent about 2 months going through the course, and found myself really liking programming in general. You start to realise that programming isn’t about learning one language, but understanding the fundamentals of computer science. It doesn’t matter what language you learn.

I then went on to reading a C programming book and took some python classes over the weekend. (I still didn’t understand a lot of stuff) Did some simple projects in C and Python and tried out some Python libraries like Pandas, and realised its really awesome for data science.

Afterwards, took some courses on Udemy to learn Javascript, HTML and CSS. Just to see how web development is like. Found it really fun to create simple responsive websites.

Now currently learning C# and .NET framework, to create web applications.

What I realised is that when I started learning C and Python, I had real trouble understanding OOP concepts. It wasn’t until I started learning Javascript to create simple websites that OOP concepts started to make sense. I learned about relational databases by using VBA and SQL to query data from the backend SQL server at my work to a “front-end” Access database. And now I’m learning about frameworks like ASP.NET MVC, while using C# as a language.

And no, I’m not even remotely good at any of these languages. But learning different languages and using them helped to solidify different programming concepts. At least that’s my experience so far and what kinda “worked” for me. It’s probably different for everyone.

Hihi, I'm a beginner too. Started with Python, SQL in my course in Data Analytics in Oct last year, and fell in love with programming. I also feel that it's a pity that I didn't have exposure to programming prior to that. I went on to study HTML, CSS, Javascript, PHP, Nodejs and React on my own. Tried doing some mini projects with what I learnt, and it helps me alot in my learning.

I personally think that having a first language(to me, it's Python) allows me to understand others more easily. Same concepts, just different languages. Great to read all your different approaches to learning. Makes me even more motivated to learn more :D
 

daniel4165

Junior Member
Joined
May 7, 2019
Messages
27
Reaction score
2
Don't worry, you are doing just fine. That's because you love technologies and you are embracing it. There is no such things as one programming language though out. That's a fallacy. You either started with the understanding that the IT industry is a very vibrant one that demands learning to be spontaneous and concurrent, or you lag behind and let others take over you.

I am thrown into the Perl programming language when I'm in my first year of work. I don't know anything about Perl before it and today I can say I am a rather advance Perl developer. At the same time, I still have to learn Linux, industrial best practices, reading RFC learning about SMTP and SMPP and so forth. If at the start of the course and you condition yourself to only learn one thing at one time, you will be getting a culture shock when you are at work. We are not in lalaland unfortunately :)

Thanks this reply!

You just indirectly convinced me to learn the basics of Go this weekend haha :)
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,391
Reaction score
1,180
Thanks this reply!

You just indirectly convinced me to learn the basics of Go this weekend haha :)

Don’t be over zealous. I say one should learn concurrently, I didn’t say go and learn everything at one shot. There are tons of other things outside of just programming languages. Learn about cloud computing, learn about testing frameworks, learn about deployment techniques, learn about storage concepts, networking concepts, containers and virtual machines. Learn about IoT, mobile, multimedia encoding and decoding, security and so forth. When you look at the big picture of things, you will quickly realise you will *NEVER* be a master of most. Do focus on 2-3 programming languages, better if they are designed to solve a different paradigm of problems.

For example, my most proficient is Java. But Javascript plays a lot of frontend, yet Perl is best for scripting jobs. Groovy is my glue language using Java libraries but still dynamic like scripting. I learn Groovy on my own during a project because I need to connect to the Oracle database, but I want to use the JDBC drivers instead of the native OCI since the platform I am working on is Solaris and it is hard for me to install drivers. Yet i need a scripting environment which can give me dynamic ness during deployment and fast changing of codes without going thru a full deployment cycle :)
Think of why you need to learn something and find out how this new thing will be helpful to your everyday task. It will help you prioritise your learning roadmap :)
 

daniel4165

Junior Member
Joined
May 7, 2019
Messages
27
Reaction score
2
Hihi, I'm a beginner too. Started with Python, SQL in my course in Data Analytics in Oct last year, and fell in love with programming. I also feel that it's a pity that I didn't have exposure to programming prior to that. I went on to study HTML, CSS, Javascript, PHP, Nodejs and React on my own. Tried doing some mini projects with what I learnt, and it helps me alot in my learning.

I personally think that having a first language(to me, it's Python) allows me to understand others more easily. Same concepts, just different languages. Great to read all your different approaches to learning. Makes me even more motivated to learn more :D

Huge respect to you. Self learning is damnnn difficult, but it's totally worth it at the same time when you realise the cool new stuff you can do haha.
 

daniel4165

Junior Member
Joined
May 7, 2019
Messages
27
Reaction score
2
Don’t be over zealous. I say one should learn concurrently, I didn’t say go and learn everything at one shot. There are tons of other things outside of just programming languages. Learn about cloud computing, learn about testing frameworks, learn about deployment techniques, learn about storage concepts, networking concepts, containers and virtual machines. Learn about IoT, mobile, multimedia encoding and decoding, security and so forth. When you look at the big picture of things, you will quickly realise you will *NEVER* be a master of most. Do focus on 2-3 programming languages, better if they are designed to solve a different paradigm of problems.

For example, my most proficient is Java. But Javascript plays a lot of frontend, yet Perl is best for scripting jobs. Groovy is my glue language using Java libraries but still dynamic like scripting. I learn Groovy on my own during a project because I need to connect to the Oracle database, but I want to use the JDBC drivers instead of the native OCI since the platform I am working on is Solaris and it is hard for me to install drivers. Yet i need a scripting environment which can give me dynamic ness during deployment and fast changing of codes without going thru a full deployment cycle :)
Think of why you need to learn something and find out how this new thing will be helpful to your everyday task. It will help you prioritise your learning roadmap :)

Thanks for the advice. Really.

You know what? I'm definitely interested in the idea of learning about Cloud Computing & Unit Testing for now. Cloud Computing because I have no idea what it is but lots of companies are starting to use it, and Unit Testing simply because I want to see why it's important to do so.
 

snoozex

Senior Member
Joined
Apr 11, 2005
Messages
1,258
Reaction score
15
Hi all,


An interesting thread here... I am just wondering for a novice, where should he/she starts? Apparently, the choices available are crazy ... as in both online and face-to-face courses available as well as the types of languages and technologies... (sorry for being vague as I am a novice)
 

daniel4165

Junior Member
Joined
May 7, 2019
Messages
27
Reaction score
2
Hi all,


An interesting thread here... I am just wondering for a novice, where should he/she starts? Apparently, the choices available are crazy ... as in both online and face-to-face courses available as well as the types of languages and technologies... (sorry for being vague as I am a novice)

A lot of people will recommend either Harvard's CS50 or MIT 6.00.1x introduction to computer science courses. Completely free and I would say much better than any of those expensive PAID courses you will find locally :D

I took CS50, so I really do vouch for it.

1) CS50 is an incredibly comprehensive 12 weeks course.

2) CS50 has a really awesome instructor.

3) CS50 has really challenging problem sets, which require you to learn on your own to complete them. It's important to be able to self-learn and read documentation on your own.

4) CS50 teaches low level language with C in the beginning before switching to higher level languages like Python. After using C, you will be amazed by the difference between C and Python. But you will also gain an appreciation for low level languages like C.

But do note that CS50 is really, really challenging for beginners. It can be done, but you will need to put in the hard work.
 
Last edited:

dangerousgaming

Junior Member
Joined
Jun 7, 2019
Messages
26
Reaction score
0
Sure lets do it your way. Have you master your Javascript yet ? The next ECMAscript is coming out soon, you will no longer be a master of Javascript because new features that you don't know make you less proficient as before. When are you going to start on your SQL ? Do you know SQL have stored procedure which are also programming language in a way ?

You will most likely be *NOT* a master of most stuff that will make your proficient in the IT industry. It doesn't matter if you are a beginner, or intermediate or advance developer. If you can't do what you are tasked to do, you will be lagging behind. When you are thrown a task in real life, you will need to pick up things almost instantaneously and within short time frames like weeks to 1.5months. If you did not train yourself to adapt learning a couple of new things at the same time, you will be *AVERAGE* whether you like it or not.

The fact that you are in an institute learning, is exactly the best place to get yourself tune to the industrial requirement and learn to be adaptive and versatile. When you are thrown to devops, needing to learn ansible, chef, puppet, or gkven a performance testing environment like Jmeter which you will need to learn groovy, jexl, beanshell, or java, you will perform badly if you don't have the SKILLSET to be versatile in your learning techniques.

Yes, even LEARNING is something to learn. You don't just be versatile because you decided one morning you wanted to be, you are versatile because you grasp the technique to juggle multiple things at the same time. How you learn this ? Throw yourself into the fire and you will learn. I have been in the IT industry for more than a decade, so whether you want to believe I say is true, you will find out pretty soon :)

Javascript is for one thing, C# is a different paradigm. Whether you like it or not, that's how the industry is. Doing your way, means you are not going to catch up at all, because you purposely limit your exposure to just one single language. Javascript is an event driven language which introduce a different way of programming, vs C# which are more structured and offers multi-threading and classical OOP. Javascript is not classical OOP, it is using prototyping OOP which is a different mode.

6 months and only 2 languages, I call it cozy. Your own choice seriously. :) Back in my NUS days, multitude languages and technologies in the same semester. C, Java, shell script, SQL, ASP, HTML, Javascript.

Okay let’s talk about your way then. Right now I’m trying to get a job as a front end dev and one of the requirements stated i need react to apply. If I go the way of jumping here and there in every 2 weeks, how am I supposed to learn such an advanced topic (to me) and be good at it in such a short time? Now I’m stuck at es6 for 2 weeks already and you’re asking me to jump to C# already? I’m not saying to be a master in js, just to the level where at least I know till the basics (which is up till I can code with a framework and understand components that level). See followup in my post below.

And sorry I can’t be a good programmer like you, I’m trying my best and I’m only average or below average seems to you. And I think you can stop showing off how long your knowledge is ok I get it you are well endowed ok good for you.
 
Last edited:

dangerousgaming

Junior Member
Joined
Jun 7, 2019
Messages
26
Reaction score
0
Maybe the way I'm learning is actually damn bad LOL. But it works for me, somehow. Maybe my brain is weird.

My current job is a lot of reporting, and honestly quite boring. Just need to be good at excel and automating some stuff + automate Outlook to email people with some nice email html formatting so the boss can see stuff easily.

I like learning new things, that's why I found programming really interesting. I wasn't learning anything new at work. Kind of regret not having studied it during Uni days, but better late than never right?

So learning programming by learning multiple languages and playing around with their libraries works for me. I keep learning new stuff (Awesome). I see progress with my skills and my wealth of knowledge grows each month (Awesome). I realize: "So this is how memory management kindaaa works with C??" or "Oh! That's why people always say Python is awesome for Data Science, because of their amazing libraries." or "Orhh.. You can do so much stuff with just modern javascript + HTML + CSS?" (Awesome)

No, I'm not fast learner. I always feel damn stupid whenever I learn some new concept. You wouldn't believe how long it takes me to understand some simple concepts. But I just keep practicing and watching youtube videos until I "get" it lor. Like some lightbulb flash in the head.

That's why I said I couldn't understand OOP concepts while learning Python. Then while I learn Javascript, suddenly OOP concepts became damn obvious. Not sure why. As I said, my brain is weird :)

Idk man sounds like you like learning new things instead of learning things and get the shiok feeling from the novelty of it rather than things needed by a job. Like are you going to apply for full stack job or data analyst? What if the requirements of the job need to know tech surrounding frontend instead? I grab one from 99.co as example.

99.co
Requirements:
- Develop user interfaces for both mobile and web apps
- HTML, CSS and jQuery
- Responsive web design
- innovative solutions to web design issues to make it more visually appealing and enhance usability
- Assist in dev of app and features on websites
- make user's digital home search experience amazing.
- Competent in CSS, Javascript, HTML, JSON, HTTP Rest
- Proficient in JS frameworks such as React.JS, Angular, Backbone, Ember, etc.
- Proficient in CSS preprocessors such as SASS, Stylus, Less, etc.
- Proficient building pipelines such as Gulp/ Grunt (task runners), Webpack, (module bundling) etc.
- Equipped with knowledge in React.JS preferred

Right now I'm not even good enough in JS to reach React.js that level then how? You want me to jump already to backend like C# or totally different area like python for data analyst? Why can't I just focus on these requirements laid out by employers and learn them asap instead? I already compiled a list of these requirements by employers and React is like one of the recurring things.

So that is React -> Json -> jQuery ->HTTP Rest -> SASS -> Webpack (I'm just going down the list, no particular order.
 

daniel4165

Junior Member
Joined
May 7, 2019
Messages
27
Reaction score
2
Idk man sounds like you like learning new things instead of learning things and get the shiok feeling from the novelty of it rather than things needed by a job. Like are you going to apply for full stack job or data analyst? What if the requirements of the job need to know tech surrounding frontend instead? I grab one from 99.co as example.

99.co
Requirements:
- Develop user interfaces for both mobile and web apps
- HTML, CSS and jQuery
- Responsive web design
- innovative solutions to web design issues to make it more visually appealing and enhance usability
- Assist in dev of app and features on websites
- make user's digital home search experience amazing.
- Competent in CSS, Javascript, HTML, JSON, HTTP Rest
- Proficient in JS frameworks such as React.JS, Angular, Backbone, Ember, etc.
- Proficient in CSS preprocessors such as SASS, Stylus, Less, etc.
- Proficient building pipelines such as Gulp/ Grunt (task runners), Webpack, (module bundling) etc.
- Equipped with knowledge in React.JS preferred

Right now I'm not even good enough in JS to reach React.js that level then how? You want me to jump already to backend like C# or totally different area like python for data analyst? Why can't I just focus on these requirements laid out by employers and learn them asap instead? I already compiled a list of these requirements by employers and React is like one of the recurring things.

So that is React -> Json -> jQuery ->HTTP Rest -> SASS -> Webpack (I'm just going down the list, no particular order.

Then I won't apply to any jobs since I can't meet any of the job requirements :D

I just sit at home and watch Netflix. I heard the new Stranger Things coming out soon.
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,391
Reaction score
1,180
Okay let’s talk about your way then. Right now I’m trying to get a job as a front end dev and one of the requirements stated i need react to apply. If I go the way of jumping here and there in every 2 weeks, how am I supposed to learn such an advanced topic (to me) and be good at it in such a short time? Now I’m stuck at es6 for 2 weeks already and you’re asking me to jump to C# already? I’m not saying to be a master in js, just to the level where at least I know till the basics (which is up till I can code with a framework and understand components that level). See followup in my post below.

And sorry I can’t be a good programmer like you, I’m trying my best and I’m only average or below average seems to you. And I think you can stop showing off how long your knowledge is ok I get it you are well endowed ok good for you.

Your career, your choice. If you think learning 2 languages is deem as de-focusing, think about all those programmers before node.js was made available. They all have to juggle at least PHP/ASP/Java and JS at the same time. Those can make it will make it whether 2 or more languages. I am advising you on how you should not just focus one language is mainly because on technique of exposure. However if you think you are on a better route, be my guest. You think I am showing off to you, so be it. :)

Your problem is not how many languages you are juggling at the moment, do some deeper on thoughts on why you are not catching concepts. I am assure you it has nothing to do with how many languages you are handling. To start off with web development, it is a NORM to handle one client-end language and one server-end language at the same time.

Please be noted, how you fair in your pursue of knowledge is your own doing. I am answering to all these while based on the following post your made earlier

I’m interested in this also but the outline from nus iss is c# for 2 weeks which really puzzles me. I thought js is enough for both front end (react/angular/vue) and backend (node js?)

Answer is no, one JS is not enough. It has *ALWAYS* been 2 since a long long time ago. Having Node.JS doesn’t make it less because Node.JS while using JS isn’t applied the same way as how JS is used in the client-end. Start off with PHP with JS and you will realise how fundamentally different the operations in the client end and server end are. That is what you should be learning, it is not the choice of language.

Why I say daniel4165 is on the right track? He is not learning a language only. He is learning Computer Science. This is the main thing and the only thing that will give you leverage as a software developer. You think I am trying to kid you with my years of experiences in this industry guiding and training juniors in my firm?
 
Last edited:

snoozex

Senior Member
Joined
Apr 11, 2005
Messages
1,258
Reaction score
15
A lot of people will recommend either Harvard's CS50 or MIT 6.00.1x introduction to computer science courses. Completely free and I would say much better than any of those expensive PAID courses you will find locally :D

I took CS50, so I really do vouch for it.

1) CS50 is an incredibly comprehensive 12 weeks course.

2) CS50 has a really awesome instructor.

3) CS50 has really challenging problem sets, which require you to learn on your own to complete them. It's important to be able to self-learn and read documentation on your own.

4) CS50 teaches low level language with C in the beginning before switching to higher level languages like Python. After using C, you will be amazed by the difference between C and Python. But you will also gain an appreciation for low level languages like C.

But do note that CS50 is really, really challenging for beginners. It can be done, but you will need to put in the hard work.


Hi,



Thank you for your reply. I think the challenge will be exercising discipline to follow through the whole 12 weeks. So I am just wondering if stuck, how do one resolve it? I think I really sounded like a novice but I guess self learning can be intimidating if the learner does not even know where to seek help. Sorry, may I know what is documentation? As in documentation about a programming language. I realise that you know where to source materials to help you so what would you suggest to a beginner? I understand there are specialised forums for learning programming languages, are they useful? I apologise for asking too many stupid questions.


Thanks!
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,391
Reaction score
1,180
Thanks for the advice. Really.

You know what? I'm definitely interested in the idea of learning about Cloud Computing & Unit Testing for now. Cloud Computing because I have no idea what it is but lots of companies are starting to use it, and Unit Testing simply because I want to see why it's important to do so.

Good that you are keen about the industry. Cloud computing while seems to be prevalent everywhere is not necessary correctly conceptualise in everywhere. Big players like AWS, GCP, Azure, Alibaba Cloud and a couple of smaller players like DigitalOcean and so forth did it right.

It's about API and remote management and automation for Cloud computing. When the idea got popular (having that it was coined by in 1950s), a lot of VPS and shared hosting companies also uses that term, but only big players mentioned above got it right with economic of scale and abundance managed services and APIs to make it possible for clients to create very expressive and automated infrastructure at their fingertips.

Consolidation is definitely the future we are looking at. Silos infrastructure only make sense for large enterprises and highly classified data security requirements or extremely dedicated performance.

I will highly recommend that you sign up for a course with AWS on their associate architecture and other courses if you want to understand much depth into AWS. While big pieces of cloud computing concepts are similar across the board, each platform have their own way and pitfalls when working with them. AWS is my go-to platform as always, and is probably the largest and most vibrant today.

Testing has been around since the dawn of software development. However it has often been considered as a secondary requirement to a lot of software development because mainly it yield no feature set, eat into your effort and budget and definitely at times makes software engineers feel they are doing something for show and wasting their time at the obvious.

I too have this thought at my early stage of software engineering, until when I'm involved in large projects that span across millions, using more than 30 developers, running across years where testing becomes largely and significantly important.

If you are doing a small project, the overhead to implement unit testing, regression testing and so forth are going to have significant overhead. But when you have projects that run for years, with developers coming and going, everyone with their own style of solving problem and different competencies, unit and regression testing is the only way to keep things sane and functional.

After writing hundreds of modules and tens of thousands lines of code and using hundreds of external libraries, how are you going to ensure each new feature implemented will not affect some codes written 2 years back and the developer incharge is no longer with the company ? That is where unit and regression testings that will run automatically on each check in of codes, or before deployment helps. It gives you a good indication on issues which may seep through the gaps because your knowledge of the system is incomplete. It will always be incomplete because no one developer wrote the whole system and most of us don't have infinite memory to remember history of the project.

There are other tests like frontend testing using selenium, browserstack, appium and more, regression testing in CI/CD devops environment, performance test using Jmeter, loadrunner, gatling at your disposal to be incorporated into projects. For industrial projects, we also run automated security scans on the web application to keep any possible vulnerabilities down.

I may have mentioned alot above, but I can assure you, it's only tip of the iceberg. That is how large and deep software engineering can be, and I didn't even touch anything about programming languages which is so greatly hyped in most software development discussions. :)
 

daniel4165

Junior Member
Joined
May 7, 2019
Messages
27
Reaction score
2
Hi,



Thank you for your reply. I think the challenge will be exercising discipline to follow through the whole 12 weeks. So I am just wondering if stuck, how do one resolve it? I think I really sounded like a novice but I guess self learning can be intimidating if the learner does not even know where to seek help. Sorry, may I know what is documentation? As in documentation about a programming language. I realise that you know where to source materials to help you so what would you suggest to a beginner? I understand there are specialised forums for learning programming languages, are they useful? I apologise for asking too many stupid questions.


Thanks!

No stupid questions!

You’re right, documentation can refer to documentation about the programming language. It can also refer to documentation of specific libraries or frameworks.

I started off learning by watching videos and tutorials on the language I wanted to learn. For example, you will watch the online classes and tutorials in the CS50 course which provides lessons on computer science concepts.

I can’t even remember how many times I got stuck when learning certain new concepts. What I did was just either rewatch the tutorials again, or go on YouTube/search for the concept on Google.

Don’t worry if you don’t understand something. It just means you will understand it at a later date or when you revise the course or learn a new language or whatever. It’s normal to get stuck. There are some concepts that I only understood better months after I first learned about it.

The thing about programming is, you can’t really learn it in the traditional sense. You can’t just read a textbook and expect to know how to answer the problems. Look at the courses and textbooks as a form of a guide instead. There are so many ways to solve any problem, some solutions obviously being better than others. To be honest, all the code I have ever written to automate some of my excel work or personal projects at home are all suboptimal. As long as it works to my own purposes, it’s fine since I know I will do it better in the future.

After sometime, you will get better at googling for answers, because you will know what questions to search for. The specialised forums you are asking would be online forums like Stackoverflow. A lot of times, problems that you face have already been solved by someone else on the net, and posted online somewhere. And I would oftentimes just take those answers posted on the online forums and tweak it to my own usage. You don’t have to reinvent the wheel every time you code, there are libraries and solutions online 99.9% of the time for most beginner problems.

Nowadays, whenever I have a problem at work or personal project I want to work on, I would always take a step back first. Break down the problem into smaller modules, think of how I you would like to solve the problem on a step-by-step basis. Once you have a clear idea of how you would implement your solution, then you start to code. If it works, think of how you can improve your implementation of the code. If it doesn’t work, think of what you have missed in your initial planning phase, and try again.

Over time, you will slowly pick up new skills and ideas that will improve your ability to solve problems. At the end of the day, programming is about solving real world problems. It doesn’t matter what tools you use, it only matters that you can solve them with the tools you have available.
 
Last edited:

daniel4165

Junior Member
Joined
May 7, 2019
Messages
27
Reaction score
2
Good that you are keen about the industry. Cloud computing while seems to be prevalent everywhere is not necessary correctly conceptualise in everywhere. Big players like AWS, GCP, Azure, Alibaba Cloud and a couple of smaller players like DigitalOcean and so forth did it right.

It's about API and remote management and automation for Cloud computing. When the idea got popular (having that it was coined by in 1950s), a lot of VPS and shared hosting companies also uses that term, but only big players mentioned above got it right with economic of scale and abundance managed services and APIs to make it possible for clients to create very expressive and automated infrastructure at their fingertips.

Consolidation is definitely the future we are looking at. Silos infrastructure only make sense for large enterprises and highly classified data security requirements or extremely dedicated performance.

I will highly recommend that you sign up for a course with AWS on their associate architecture and other courses if you want to understand much depth into AWS. While big pieces of cloud computing concepts are similar across the board, each platform have their own way and pitfalls when working with them. AWS is my go-to platform as always, and is probably the largest and most vibrant today.

Testing has been around since the dawn of software development. However it has often been considered as a secondary requirement to a lot of software development because mainly it yield no feature set, eat into your effort and budget and definitely at times makes software engineers feel they are doing something for show and wasting their time at the obvious.

I too have this thought at my early stage of software engineering, until when I'm involved in large projects that span across millions, using more than 30 developers, running across years where testing becomes largely and significantly important.

If you are doing a small project, the overhead to implement unit testing, regression testing and so forth are going to have significant overhead. But when you have projects that run for years, with developers coming and going, everyone with their own style of solving problem and different competencies, unit and regression testing is the only way to keep things sane and functional.

After writing hundreds of modules and tens of thousands lines of code and using hundreds of external libraries, how are you going to ensure each new feature implemented will not affect some codes written 2 years back and the developer incharge is no longer with the company ? That is where unit and regression testings that will run automatically on each check in of codes, or before deployment helps. It gives you a good indication on issues which may seep through the gaps because your knowledge of the system is incomplete. It will always be incomplete because no one developer wrote the whole system and most of us don't have infinite memory to remember history of the project.

There are other tests like frontend testing using selenium, browserstack, appium and more, regression testing in CI/CD devops environment, performance test using Jmeter, loadrunner, gatling at your disposal to be incorporated into projects. For industrial projects, we also run automated security scans on the web application to keep any possible vulnerabilities down.

I may have mentioned alot above, but I can assure you, it's only tip of the iceberg. That is how large and deep software engineering can be, and I didn't even touch anything about programming languages which is so greatly hyped in most software development discussions. :)

Thanks man, my to-do list keeps increasing :D But honestly it’s really fun, because I get to keep looking forward to new things to learn and not stagnate.

Oh start with learning programming language they said.

Oh you want to learn backend stuff ah? Go learn SQL Server!

Oh if you want to try out front end stuff ah? Like web development l? Go learn javascript html css.

Oh you want to create web app? Go learn .NET framework.

Oh you know cloud computing will eventually replace traditional hardware and corporate data centres ah? Gogo learn about it :)

You want to write better code? Go read books on algorithms and data structures!

You want to get job??? Go read cracking the coding interview and leetcode like hermit!
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,391
Reaction score
1,180
Thanks man, my to-do list keeps increasing :D But honestly it’s really fun, because I get to keep looking forward to new things to learn and not stagnate.

Oh start with learning programming language they said.

Oh you want to learn backend stuff ah? Go learn SQL Server!

Oh if you want to try out front end stuff ah? Like web development l? Go learn javascript html css.

Oh you want to create web app? Go learn .NET framework.

Oh you know cloud computing will eventually replace traditional hardware and corporate data centres ah? Gogo learn about it :)

You want to write better code? Go read books on algorithms and data structures!

You want to get job??? Go read cracking the coding interview and leetcode like hermit!

Well that is the life of a software engineer. Running target that never ends. That is why while we can appreciate someone spend time to master something, you have to transcend in your thinking process. Ultimately what you are learning is Problem Solving skill set. It is not limited to which programming languages, which database, which network topology, which infrastructure, which chipset, which methodologies and which products.

Over time you will realise what you are trying to master is the application of Computer Science. It is actually Science, Mathematics and Philosophy fundamentals. You will never master any of these, but with time and experiences, you can learn to be versatile and adaptive.

Learning programming language is just a means to an end. :)
 

pumpdump

Junior Member
Joined
Jun 15, 2019
Messages
38
Reaction score
0
David, thanks for sharing so much. I am going to start a career in software development after my studies and have learnt much from your advice and insights.

I agree that mastering programming languages is important especially in today's competitive society. But what is more important is to truly understand how computer science can be applied to solve problems and programming languages are nothing but tools to do so.
 
Important Forum Advisory Note
This forum is moderated by volunteer moderators who will react only to members' feedback on posts. Moderators are not employees or representatives of HWZ. Forum members and moderators are responsible for their own posts.

Please refer to our Community Guidelines and Standards, Terms of Service and Member T&Cs for more information.
Top