Etter examen artium 1864, tok han reallærereksamen med i 1871 ved Det Kongelige Frederiks Universitet. Med stipendium foretok han somrene 1870–71 geologiske undersøkelser i Østerdalen (sammen med dr.med. Hagen) og i 1872 fjellene ved Meråker, på oppdrag av Norges geologiske undersøkelse. Videre studerte han fysikk og matematikk i to år fra 1872 med nytt stipendium hos blant andre Hermann von Helmholtz i Berlin og Gustav Kirchhoff i Heidelberg. Han returnerte til Kristiania høsten 1874 og ble tilsatt som lektor, men ble 27. november 1875 landets yngste professor, 29 år gammel. Her jobbet han blant annet sammen med unge fremadstormende Vilhelm Bjerknes og Kristian Birkeland. I tiden 1881–88 ledet han temperaturmålingene i Mjøsa, samtidig med at han fortsatte sine sommerlige geologiske undersøkelser av fjellene i øst. Han satt som professor til han ble 76 år, og professoratet ble i 1922 overtatt av Sem Sæland.