I think when it comes to programming, we are all just beginners with different levels of cultivated intuition. Sometimes we might feel that we are 'stuck' at a beginner phase because we define the expert status purely in terms of knowledge.<p>But What separates so-called expert programmers and novices is the intuition that one can develop through a prolonged practice in a very predictable environment that is software engineering.