Cornfield Chase

Cornfield Chase

I love and harness the power and the energy of black holes

"Cornfield Chase" is a song from the soundtrack of Interstellar, one of my favourite movies of all time.

It's about a black hole, and I just love black holes so so much. I just love them so so fricking much!!! I just love them! When I think of a black hole for some reason then I just think of peace. I think of the peace and quiet that I just so desperately and so badly need. I love black holes. I love them so so much. I just love them.




Another one I really love from that soundtrack is No Time For Caution. I love it at least as much if not more. 

In fact I love it so so much that I even considered renaming this whole blog post "No Time For Caution". But that is a pretty ominous name for a blog post. I think I am going to do a bit more writing about black holes on this blog because I really just fricking love them so so so much.

Part 1: Tech Security

Okay so yesterday I travelled up to London. 

One of the many amazing reasons I had for doing this was to meet with one of my incredible, wonderful colleagues called Will. Will is an Information Security Manager and has an abundant wealth of experience he very generously shared with me.

I made a note of a lot of keywords and ideas, and I would like to just note them down. I put some of them into graphic format to learn better.

One of the first quotes from Will was: 

"Organizationally, how do you create the teams that will protect your product?"



And: "From a policy perspective, what policies do you put in place?".



Will also said to me some other really cool things like how to try and look at my code and to understand it from a security perspective. 

He basically said that: "Everything you do has the ability to be exploited by a bad actor".



He gave me an example of this: 

Say that you have a website with a form on it that takes input from the user - how do you make sure that someone doesn't input malicious code through the form that would then run on the server? He also mentioned the word injector, I'm not sure if that's what that means - is it what you would use to do it or what the name of that tpye of code is?

And he said: "How do you look for vulnerabilities in code?"


And here are some of the super cool and riveting words he taught me: 


(Threat intelligence, GCP, Secure Design, Threat Model, Encrypted Information, Cryptography, Application Security).

Security Training

Will really recommended for me to do a course: KONTRA's OWASP Top 10 for Web.

This looks extremely exciting and I CAN'T WAIT to try it!!! Looks SO COOL!

Be Like A Sponge 

I asked Will what one piece of advice he had for someone who's building their career. He said to me quite simply:

"Be like a sponge".

Reaching Out To Other People 

What he meant by this was to reach out to people. To learn as much as I can. To take advantage of being in this company and of having different people to talk to and learn from. Steve, one of my favourite developer friends from Brighton, said the same thing to me - he said it's better to talk to 10 people in different areas than 10 web devs. I would argue that even 10 web devs is good - but every different person brings something new.

I thought I'd just be annoying people, but Will said I wouldn't be. 

Next Steps

  • To reach out to someone in the team about application security - Will has given me a name.
  • To reach out to one of the Tech Leads I met in the office yesterday as our conversation was interrupted by a meeting and I'd love to hear some more.
And actually with this, then it feels like "No Time For Caution" is an appropriate title. 😂

Part 2: TypeScript and Type Safety

So yesterday I met 3 of my teammates, all of whom have featured on this blog before, in person for the first time. Mark, Artur, and Adam. To say it was an absolute pleasure and absolute delight to have met them would not be enough. I am so so happy and so glad and so delighted that I got to meet them all, give them all hugs and share with them meetings and a social.

TypeScript

Yesterday was a magical day for me because I got to encounter TypeScript properly for the first time.

And Mark just kept on saying to me the same thing over and over again: Do not be afraid of TypeScript. Do not be afraid of it. It is exactly like JavaScript, but with types.

This means that, in functions, you can tell variables, parameters or return types what type of info to expect. E.g. you can tell a function that it should expect a string, a number, or, maybe, I'm guessing, a boolean?

What was truly amazing was to see Mark in action. He was just going over TypeScript with me and I could honestly see the years and years of experience that he had in his hands. The mastery.

It was truly amazing to go over it with Artur too. What he explained to me is that type safety is when you tell a function what types of parameters/variables/return types to expect then you protect yourself against it going wrong. But using TS as a language per se doesn't guarantee type safety. You still have to set this up yourself. You also don't even have to use types in TS.  It just gives you the option.

Git

Artur and I looked over Git together. In the model that Adam suggested for my learning, where I type out bits of code and then upload them to a repo, Artur suggested that I manually do adds and commits for now (sorry Adam...). I don't know - I don't find it that hard to add and commit files. I just find it hard to create new ones. I epically failed at my solo attempt to this just now so maybe I do find it all hard after all. Whereas using Artur's manual method WORKED. So maybe I'll just stick to that for now. Maybe. 

There are 3 steps:
  • Go to Source Control
  • Then 'Commit'
  • Then 'Sync'
If it works it works... Artur said to wait until I understand things better. However if Adam hadn't have helped me then I wouldn't even have the option to do this.

Mozilla Developer Network

So Mark and I were looking at something together... I can't exactly remember what... and he went onto the MDN, and we read it together. What really struck me about the fact that Mark was doing it was the fact that the extremely experienced developer I worked with at the Codebar workshop on Tuesday, Jules, was doing the exact same thing. 

To quote Jules directly, because he is very quotable, this is exactly what he says. 

"If you're going to be using something, it's worth looking it up to find out what it does."

If you're going to be using something, it's worth looking it up to find out what it does."

So clearly all of the best, best devs are looking at the MDN and that is exactly what I intend to be doing from now on. Two pages that I have already been instructed to look up on the MDN by Jules are:
  • The Math Object
  • The Math.Random object (function?)

Part 3: My Codebar Workshop with Jules on Tuesday

It's Friday and I keep trying to write about this every day. 

Why does this keep on going wrong? 

Apart from the fact that I've been busy. Well, maybe it's because it's just so complicated. So let me start from the end and let's work backwards.

Actually, let's start with a few  quotes from Jules.

"If you want to learn nothing, use Chat GPT".

Because:

"If you want to learn to programme you have to be able to create ALGORITHMS. It's not about learning the language. It's about learning to problem solve".

Back to his code

So the problem with Jules was that he explained things well. Like really really well. So I jumped on the opportunity to ask him all of my most burning coding questions.

Which led quite quickly to callbacks and helper functions - how do we put a function inside of another function?

He said a little something like this:

let fred = function(var1, var2, f1){
    return f1(var1, var2);
}

let funk = function (v1, v2){
    return v1 * v2; 
}

let result = fred(5,6, funk)

This led to me almost melting down and leaving the room and crying.

I don't know why - I COULDN'T understand how ONLY PUTTING THE VARIABLES ONCE AFFECTED BOTH THE FUNCTIONS. And to be fair, I still don't understand it, and I need to go over it again on Monday.

But at least now I'm not crying about it anymore.

And I KNOW THAT IT IS SOMETHING TO DO WITH THE SECOND LINE OF CODE.

P.S. I asked Jules what a Database was

He said: "A database is something that stores data in a relational way".

Part 4: Goals for Monday

  • Look up two things on the MDN
    • Math Object
    • Math Random
  • Maybe look at the security course
  • Finish my JavaScript RPS game, finally - at long last - 
    • Finish working my way through the project
    • Watch through the video
    • Write up some notes
  • Analyse Jules' code.
And then I have the Sleep Debt Calculator and then I will FINALLY be done with JS functions.

With the SDC this might end up being Monday, Tuesday AND Wednesday's goals...

Comments

Popular posts from this blog

Hello World

Yosemite

Two Lines of Thought, Makes Me Wonder What I'm Missing