Eu curso Análise de Sistemas e acho um pouco difícil sugerir o melhor. O notebook fornece a mobilidade e dependendo do seu processador pode fornecer um bom desempenho. Com tudo por mais potente que seja o notebook não fornece o mesmo desempenho do desktop. Dependendo da linguagem que você vai utilizar é muito bom programar no desktop, como por exemplo PHP, Phyton, etc. Quando programamos em Web podemos executar o código simultaneamente ao seu desenvolvimento e utilizando dois monitores fica muito confortável de programar. Também podemos dizer que trabalhar com telas maiores proporciona melhores resultados e dependendo de seu posicionamento na cadeira resulta em menos cansaço. Claro que o notebook pode proporcionar isso, porém de forma reduzida.
Enfim depende da sua situação, ela por si deve responder o que é melhor e como pode extrair maiores resultados.