I’m No Longer A Beginner

As I’ve been learning the very basics of Objective-C in the past few weeks (what a function is, how to write a “Hello World” program, if / else statements, etc), I found myself having this thought: “This is pretty easy, anyone can learn to code!”.

I really have no idea what was so difficult about all this when I was learning it all for the first time! It just seems so obvious now.

I now understand why programmers say it’s easy to learn to code – because for them, it’s easy to code! It’s something I do every day now, so it’s become second nature.

So if you’re a beginner and someone tells you it’s easy, don’t get intimidated or feel stupid if you’re having a hard time! It’s hard for experienced programmers to remember what it was like to get to the point where it was easy. I remember lots of pain and sweat and tears, but I just really can’t think of why I struggled so much! This stuff is EASY!

Enjoy the article? Join over 14,500+ Swift developers and enthusiasts who get my weekly updates.

  • theoptips

    I totally know what you mean. I really don’t like when people say “It’s just easy”, when clearly it isn’t. But you are right, when they are doing this, breathing this daily it start to be that way 🙂

    Thanks for writing about. I will keep your words in mind.

    • theoptips

      still hoping to meet up with you when u have time – Vi’s friend 🙂

  • tj

    function processParagraph(paragraph){
    return processText(paragraph,”%”);
    }
    function processText(text,symbol){
    var counter=0;

    while(true){
    if(text.indexOf(symbol)==0){
    text = text.slice(1);
    counter++;
    }else{
    var type = counter>0?”h”+counter:”p”;
    return {“type”:type,”content”:splitParagraph(text)};
    }
    }
    }

    function splitParagraph(paragraph){
    var fragmentArray=[];
    var content;
    var type;
    function fragmentParagraph(){
    while(paragraph!=””){
    if(startsWith(paragraph,”*”)){
    type = “emphasized”;
    content = extractFragmentBetween(“**”,paragraph);
    paragraph = paragraph.slice(content.length+2,paragraph.length);
    fragmentArray.push({“type”:type,”content”:content});
    }else if(startsWith(paragraph,”{“)){
    type = “footnote”;
    content = extractFragmentBetween(“{}”,paragraph);
    paragraph = paragraph.slice(content.length+2,paragraph.length);
    fragmentArray.push({“type”:type,”content”:content});
    }else{
    type = “normal”;
    content = extractFragmentUptil(“*{“,paragraph);
    paragraph = paragraph.slice(content.length,paragraph.length+1);
    fragmentArray.push({“type”:type,”content”:content});
    }
    }
    }
    fragmentParagraph();
    return fragmentArray;
    }

    function extractFragmentBetween(set,text){
    var start = 1;
    var end = text.indexOf(set.charAt(1),start+1);
    return text.slice(start,end);
    }

    function extractFragmentUptil(set,text){
    var counter=0;
    var minIndex=-1;
    for(var i = 0;i0 && counter==0){
    minIndex = curIndex;
    counter++;
    }
    else
    minIndex = curIndex0)
    return text.slice(0,minIndex);
    else
    return text;
    }

    function startsWith(text,element){
    return text.indexOf(element)===0;
    }

    function map(array,action){
    var resultArray = [];
    for(var i=0;i<array.length;i++){
    resultArray.push(action(array[i]));
    }
    return resultArray;
    }

    show(map(recluseFile().split("nn"),processParagraph));